`

ruby类库

    博客分类:
  • ruby
 
阅读更多

1.require 'cgi'
def self.escape_request_params(args)
  pairs = args.strip.split('&')
    pairs.map do |pair_txt|
    pair = pair_txt.split('=')
    "#{pair[0]}=#{CGI.escape(pair[1])}" if pair[1]
    end.join('&')
end

CGI.unescape


2.require 'logger'
require "rubygems"
require 'active_record'

log_file = "#{PWD}/../log/database.log" 
ActiveRecord::Base.logger = Logger.new(log_file)
ActiveRecord::Base.logger.level = Logger::INFO

if local_machine?
  begin
    `> #{log_file}`
    ActiveRecord::Base.logger.level = Logger::DEBUG
  rescue;end
end


3.require 'find'
MODELS_DIR = "#{RAILS_ROOT}/app/models" unless defined?(MODELS_DIR)
Find.find(MODELS_DIR) do |path|
  require path if path =~ /\.rb$/
end

4.require 'drb'
类似java的RMI
ServerURL = "druby://61.135.169.125:4000"
class Dispatch
  def ask_adwords_us
  end
end

dispatch = Dispatch.new
DRb.start_service ServerURL, dispatch

@dispatch_server = DRbObject.new nil, ServerURL
@dispatch_server.ask_adwords_us


5.require 'fileutils'
FileUtils.remove(path)
FileUtils.cp(from,to)
FileUtils.ln(source,path)
FileUtils.rm_f(path)
FileUtils.chmod(path)
FileUtils.mv(from,to)
FileUtils.mkdir_p(path)
FileUtils.touch(path)

6.
require "#{File.dirname(__FILE__)}/../config/initializers/ext"
 Dir.glob("#{RAILS_ROOT}/app/models/*").select { |f| File.directory? f }
返回据绝对路径的arr

7.require 'yaml'

test_obj = ["dogs", "cats", "badgers"]
yaml_obj = YAML::dump(test_obj)          
ruby_obj = YAML::load(yaml_obj) => ["dogs", "cats", "badgers"]
ruby_obj == test_obj => true

############config.yml##############################
refetch_count: 2
client_server_url: druby://localhost:8777
dispatch_server_url: druby://localhost:8666

adwords: 1
yahoo: 8
google: 12
bing: 15
############config.yml##############################

config_path = '/home/simon/文档/monitor_v3/config/config.yml'
config = YAML::load(File.open(config_path))
返回hash

Signal.trap("TERM")

8.require 'csv'
CSV::Reader.parse(File.open(csv_file_path, "r")) do |line|
  c = Card.find_or_create_by_term_and_collection_id(line[0], collection_id)
  c.update_attributes(:definition => line[1], :user_id => user_id)
end

9.
require 'md5'
MD5.hexdigest(`uuidgen`.strip!)
#目前不是很安全,碰撞算法能导致冲突
############################################

require 'digest/sha1'
Digest::SHA1.hexdigest(`uuidgen`.strip!)
#目前还比较安全

############################################
require 'openssl'
require 'base64'
KEY = "9706a6217733d43a5f3bf5e42663ba67"

def self.des_encrypt(message)
    cipher = OpenSSL::Cipher::Cipher.new("des-cbc")
    cipher.encrypt
    cipher.key = KEY
    text = cipher.update(message)
    text << cipher.final
  Base64.encode64(text)
end

def self.des_decrypt(message)
  _message = Base64.decode64(message)
  cipher = OpenSSL::Cipher::Cipher.new("des-cbc")
  cipher.decrypt
  cipher.key = KEY
  text = cipher.update(_message)
    text << cipher.final
end

############################################
10.
require 'open-uri'
require 'uri'


11.多线程

Thread synchronization: Mutex or Monitor?
Ruby Mutex is  quite advanced, pure OO and even can be mixed into any
object (require "mutex_m.rb") exactly the same way as Ruby Monitor.
So, in terms of their functionality and usage they can do the same
things with the same API. Mutex #synchronize allows for control of
multiple access points the same way as Mutex #synchronize does.

require 'monitor'
monit = Monitor.new

require 'thread'
mutex = Mutex.new

require 'drb'
mutex = Mutex.new

12.
#params['file'] from the form
def upload_file(file)
  if !file.original_filename.empty?
    @filename = file.original_filename
    File.open("#{RAILS_ROOT}/public/images/#{@filename}", "wb") do |f|
      f.write(file.read)
    end
    return @filename
  end
end

# params[:file] is Tempfile obj from the page
img = Magick::Image.from_blob(params[:file].read)[0]
img.write("#{filename}")
#r,w,rw,w+,rb,wb



13.

/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/rexml.rb

/usr/lib/ruby/1.8/rexml /rexml.rb



#require 'rubygems'
#require 'active_support'   #重新包装了rexml

require 'rexml/rexml'
require 'rexml/document'

str = <<-EOF
<?xml version='1.0' encoding='UTF-8'?>
<students desc='Class3'>
<student info='not bad'><name>simon</name><birth>1986</birth><score>98</score></student>
<student info='very good'><name>tom</name><birth>1988</birth><score>79</score></student>
<student info='just-so-so'><name>edwa</name><birth>1987</birth><score>95</score></student>
</students>
EOF

REXML::Document.new(str).root.elements.each_with_index do |element,  i|
  #puts element.methods - "".methods
  puts "<<<<<<<<<<#{i+1}<<<<<<<<<<<<<<<<<<"
  puts element.attribute("info")
  puts "------------------"
  puts element.get_elements("name")
  puts element.get_text("name").value
  puts "------------------"
  puts element.get_elements("birth")
  puts element.get_text("birth").value
  puts "------------------"
  puts element.get_elements("score")
  puts element.get_text("score").value

  puts ">>>>>>>>>#{i+1}>>>>>>>>>>>>>>>>>>"
end


14.parse json

require 'rubygems'

require 'active_support'


1.8.7 :012 > j
 => "[{\"birth\":1986,\"name\":\"tom\",\"score\":90},{\"birth\":1988,\"name\":\"simon\",\"score\":99}]"

_j = ActiveSupport::JSON.decode(j)
 => [{"name"=>"tom", "birth"=>1986, "score"=>90}, {"name"=>"simon", "birth"=>1988, "score"=>99}]


15

require 'net/http'
require 'uri'


HTTP.post_form URI.parse('http://www.example.com/search.cgi'),   { "q" => "ruby", "max" => "50" }


str = Net::HTTP.get(URI.parse('http://www.baidu.com'))


res = Net::HTTP.get_response(URI.parse('http://www.example.com/index.html'))
print res.body



16.require 'iconv'


 def utf8_to_gbk
     encode_convert(self, "GBK", "UTF-8")
  end



  def gbk_to_utf8
     encode_convert(self, "UTF-8", "GBK")
  end

 


  def encode_convert(s,  to,  from)
      converter = Iconv.new(to, from)
      converter.iconv(s)
  end



17


sudo gem install json_pure


require 'rubygems'
require 'json'
require 'pp'

json = File.read('abc.json')
h = JSON.parse(json)



18.

def abc

  str = '{"ret":1,"start":"123.122.208.0","end":"123.123.31.255","country":"\u4e2d\u56fd","province":"\u5317\u4eac","city":"\u5317\u4eac","district":"","isp":"\u8054\u901a","type":"","desc":""}"

   json = JSON.parse(str)


   puts  "#{ json [:city]}"          #北京

   puts   json [:city]               #   \345\214\227\344\272\254

 

   return  json

end













分享到:
评论

相关推荐

    Ruby教程面向对象脚本语言

    fxri是用于查看Ruby类库文档的工具,而ri则是Ruby内置的交互式文档系统。RubyGems是Ruby的包管理系统,允许开发者轻松地安装、管理和分享Ruby库。 Ruby UI标签可能是指Ruby在构建用户界面(UI)方面的应用。Ruby...

    ruby的pop3、SMTP类库说明

    Ruby中的POP3和SMTP类库是用来处理电子邮件收发的核心工具,它们允许开发者通过编程的方式与邮件服务器进行交互。本文将详细介绍这两个类库的功能和使用方法。 首先,POP3(Post Office Protocol version 3)是一种...

    rubygems-3.2.27.tgz

    每个gem都包含了一组相关的Ruby类库,有自己的版本号,以便追踪不同版本之间的变化。 2. **依赖管理**:Gem可以声明对其它gem的依赖关系。RubyGems会自动处理这些依赖,确保所有必要的gem都正确安装并更新到兼容的...

    Ruby是一种强大而优雅的编程语言,以其简洁的语法、动态性、面向对象编程和丰富的类库而著称 以下是对Ruby的500字资源介绍:

    #### 五、丰富的类库和第三方库 1. **标准库**:Ruby提供了一套强大的标准库,包含了大量的模块和类,可以用于文件操作、网络编程、字符串处理、正则表达式等。 2. **第三方库**:RubyGems是Ruby社区的主要包管理...

    ruby中文手册 chm

    这部分通常是对Ruby内置类库、方法、语法的详细参考,涵盖了标准库的所有模块和类,比如Array、Hash、String等。它提供了每个方法的用法、参数和返回值,是开发者在编写代码时查找特定功能或方法的重要资源。 3. *...

    一套简化Java持久层操作的类库

    总的来说,这个Java类库为开发者提供了一种简化的方式来处理数据库操作,通过面向对象的接口,结合Java反射技术,实现了类似Ruby on Rails的ActiveRecord模式。这使得开发者可以避免编写大量的SQL代码,而是专注于...

    ruby中文教程,从基础到深入的让你学习ruby

    Ruby是一种面向对象的、动态...通过这个中文教程,你将掌握其基本语法,理解面向对象编程的概念,熟悉常用的类库和工具,并能够运用Ruby进行实际的项目开发。无论你是初学者还是有经验的开发者,都能从这个教程中受益。

    绿化ruby193

    这对于学习和理解Ruby的语法、类库和方法非常有帮助。 5. **lib**:这个目录是Ruby的核心库和标准库所在的位置。它包含了各种内置模块和类,如`Array`、`String`、`Hash`等,以及一些实用工具,如`irb`(交互式Ruby ...

    Ruby-irbtools改善Ruby的IRB控制台

    Ruby IRB(Interactive Ruby)是Ruby语言的标准交互式shell,允许开发者在运行时测试代码、探索类库和调试程序。然而,IRB本身的功能相对基础,对于一些高级的开发需求可能显得不够用。这就是irbtools的出现,它为...

    Ruby Programming

    - **强大的类库支持**:Ruby拥有丰富的标准库,支持多种用途,如网络编程、图形界面等。 - **多范式支持**:Ruby支持面向对象编程、函数式编程等多种编程风格。 #### 三、Ruby编程书籍推荐——《Programming Ruby》...

    Ruby API Docs帮助文档

    Ruby API Docs是针对Ruby编程语言的一份详尽的官方文档,它为开发者提供了关于Ruby标准库和核心类库的详细信息。这份文档包含了1.8.7和1.9.2两个版本,这两个版本在Ruby的发展历程中具有重要的地位。Ruby API Docs...

    ruby语言帮助文档(简体中文)

    Ruby语言的帮助文档是学习和理解其语法、类库、方法和框架的重要资源。 这个"ruby语言帮助文档(简体中文)"包含了Ruby的所有基础知识,从语言特性到高级概念,为初学者和经验丰富的开发者提供了全面的指导。以下是...

    eloquent ruby

    - Ruby的设计哲学强调程序员的生产力和代码的可读性,它具有强大的类库支持,并且语法简洁明了。 2. **面向对象编程(OOP)** - Ruby是一种纯面向对象的语言,一切皆对象。 - 类(Class)与实例(Instance)的概念。 ...

    Ruby 教程 从入门到精通

    - **使用fxri**:这是一个Ruby文档查看器,便于查阅类库文档。 - **Ruby-irb**:交互式Ruby shell,可用于实时测试代码片段。 ### 其他章节 后续章节会涵盖更多内容,如变量、数据类型、控制结构、类与对象、模块、...

    ruby-1.8.7-p72-i386-mswin32.zip

    这些文档对于学习和理解Ruby语言的语法、类库和最佳实践非常有用。 6. **lib**:这是Ruby的核心库和标准库所在的目录,包含了许多预定义的类和模块,如`Array`, `String`, `File`, `IO`等。开发者可以直接在他们的...

    ruby解释性脚本语言中文文档

    Ruby是一种解释性的、面向对象的脚本语言,它以其简洁、优雅的语法和强大的功能而闻名。...通过阅读“ruby中文文档.chm”,您可以更深入地了解Ruby的语法、类库和最佳实践,提升您的Ruby编程技能。

    ruby-1.8.5.tar

    它强调简洁性和生产力,提供了丰富的类库和模块,使得开发者能够快速构建应用。Ruby 1.8.x 系列是 Ruby 的一个长期支持版本,尽管已经过时,但在某些老项目或特定环境中仍然不可或缺。 在 "ruby-1.8.5.tar" 压缩包...

Global site tag (gtag.js) - Google Analytics