`
jsntghf
  • 浏览: 2482552 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
文章列表
Ruby中获取一个HTTP/FTP地址的内容,有一个非常方便的方法,就是使用open-uri库。   open-uri库是ruby的标准附加库中所带的,引用了该附加库后,就可以像打开普通文件那样打开一个http/ftp的uri的资源。   有区别的地方在这里:   require 'open-uri' open('d:/test.txt'){|file| puts file.class => #File } open('http://www.xuexi6.com'){|file| puts file.class => #Tempfile } ...
不常用,可以用于学习。   require 'socket' include Socket::Constants def scan_port if $*[0] == nil or $*[1] == nil or $*[2] == nil abort "用法示例:ruby #$0 ip地址 开始端口 结束端口 EX:如ruby #$0 localhost 1 1024" end time = Time.now scan $*[0], $*[1], $*[2] puts "\n共耗时 ...
这个功能虽然简单,但是比较常用。 下面我简要描述一下。 html代码:   <link href="stylesheet/style.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="javascript/checkpwd.js"></script> 请输入密码<input type="password" name=&quo ...
一、GBK和UTF-8的转换 用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。   # utf8 to gbk def u2g(ucode) begin "#{Iconv.conv('gbk','utf-8',ucode)}" rescue " #{ucode} " #如果转换不成功,则不转换,并在字符串两边加入空格,避免构造出错误的sql字符串。 end end   在网络上抓取的信息,可使用这个方法转换。   二、RUBY DBI  ruby和s ...
!!true和!!false,加上!!似乎有点多余,但是在!!nil时就不同了,返回的结果为false。   # 判断用户是否登录 def logged_in? !!current_login_space end # 取出当前登录用户 def current_login_space @current_space = Space.find(cookies[:space_id]) end   如果用户未登录,则current_login_space返回的值就为nil,如果将这个空值当做fasle赋值给其他变量,则有可能出现莫名其妙的问 ...
很多情况下,我们会对时间进行特定格式输出。 在此,举两个例子。   一、集成多种方式输出 在config/initializers/date_time_formats.rb中输入如下代码: Time::DATE_FORMATS.merge!( :full => '%B %d, %Y at %I:%M %p', :md => '%m/%d', :mdy => '%m/%d/%y', :time => '%I:%M %p' )   我们可以这样去用它:   Time.now.to_s(:full) => #December ...
首先进行安装 gem install menu_helper   下面看个简单的例子。   路由如下所示: map.with_options(:controller => 'site') do |site| site.home '', :action => 'index' end map.with_options(:controller => 'about_us') do |about_us| about_us.about_us 'about_us', :action => 'index' about_us.c ...
众所周知,Rails可以将session数据存入数据库(此处以MySQL为例)。然而,这些session数据并不会被删除,这意味着你的sessions表会越来越大。   因而,你可能会想到一个简单的解决方案,那就是清空sessions表,为此,rails为我们提供了一个rake命令,那就是rake db:sessions:clear。   这将会导致一个问题,所有过期的以及未过期的session数据都会被清除。   然而,还有一个解决方案,它只会清除一些过期的session数据。   下面举个例子:清除1天前的session数据。   desc "Clear exp ...
有时你可能会忘了rails中定义的一些日期时间格式,或许你会忘了自己加入的一些日期时间格式。   下面的代码将会列出rails中的日期时间格式。   task :date_formats => :environment do now = Time.now [:to_date, :to_datetime, :to_time].each do |conv_meth| obj = now.send(conv_meth) puts obj.class.name puts "=" * obj.class.name.length ...
首先写一个类,用来封装获取系统平台以及浏览器信息的方法   class Info attr_accessor :env, :browser, :platform def initialize(request) self.env = request get_platform get_browser end protected #获取系统平台 def get_platform begin if self.env['HTTP_USER_AGENT'] =~ /Win/i self.p ...
一、camelize 这个方法可以将字符串转成驼峰形式,并且可以将字符串中的/替换成::将路径转换成命名空间时比较有用。   def camelize return self.gsub( /\/(.?)/ ) { "::" + $1.upcase }. gsub( /(^|_)(.)/ ) { $2.upcase } end   "active_record".camelize #=> "ActiveRecord" "active_record/e ...
1、交谈 尽可能多地跟其他软件开发者交谈; 培养个人关系; 跟意见与你相左的人交流; 跟经验更丰富的人交流; 跟阅历丰富的人交流。 多到Groups 中去,尤其是交谈自由随意的Groups——不约束主题,不约束交谈内容。   2、选择更好的环境 好多开发者都有成为优秀开发者的所有优点,只是他们没有机会在好的环境中工作。这里所说的好的环境,是指周围有一帮愿意且能够分享他们知识的开发者。如果你是“菜鸟级”开发者,你的成长路线将因他们而大为缩短;如果你是“高级”开发者,你的能力也会因为同伴的刺激和挑战而提高。   3、参与开源 也许你的工作会枯燥,甚至不合你的兴 ...
这个例子构建在第一个例子(http://www.iteye.com/topic/524316)的基础上,但是需要将搜索到的文件打包到zip文件中。   内建的zlib模块可帮助处理gzip文件,对于大多数情况它都够好。在这里我将使用另一个很好的Ruby库,即“rubyzip”,来创建和处理zip归档文件。   安装rubyzip   gem install rubyzip   require 'find' require 'zip/zip' puts "" puts "------------------File Search and Zi ...
在指定路径中搜索符合给定模式的文件,并给出关于这些文件的详细信息。实现这一目标不必依赖于任何命令行程序,只需使用Ruby内建的API。 因此,这个例子在有Ruby运行的任何平台上都能运行。   而且,这个例子展示了Ruby在简化脚本编程需求方面有多强大。它不是简单地模拟"find"命令,而是构建在该命令之上,因而在使用Ruby时具有很强的定制能力。   require 'find' puts "" puts "-----------------------File Search---------------------------- ...
Rails2.2的ActiveSupport新增加了几个方法,非常有意思。在此列举其中的两个:StringInquirer和many?进行试用。   一、StringInquirer 有时候,我们有这样的需求,看一个用户是否是激活状态,数据是从数据库里查出来的:   user = User.find(params[:id]) user.status # => "active" user.status == "active" # => true user.status == "inactive" # =& ...
Global site tag (gtag.js) - Google Analytics