[LIBRARY] 茁壯成長的ruby擴充庫

來源:互聯網
上載者:User

自從rails紅火以後, ruby的社區明顯比以前壯大了不少(小弟我也是因為rails才學習ruby的),所謂人多好辦事, 各種ruby的擴充類庫也如雨後春筍一般冒出來,他們的特點就是版本低(很少上1.0), 名字都取得很有個性, 主要的目的也是增強或者替換ruby內建的標準庫, 下面列出幾個我在用的

rio : Ruby I/O Comfort Class

rio就是一個ruby內建io類的封裝, 主要的作用範圍就是操作檔案, 抓網頁, 壓縮解壓, 處理CSV等等IO操作, 現在的版本是0.3.7, rio使用起來及其簡單
例子如下

拷貝或者增加內容到字串對象中

 rio('afile') > astring      # copy rio('afile') >> astring     # append

拷貝或者增加內容到檔案中 

 rio('afile') < astring      # copy rio('afile') << astring     # append

他的官方網站裡面有詳細的樣本, 如果是經常要在linux上維護檔案的朋友請不要錯過.

commandline:命令列增強

commandline是一個簡化命令列介面的庫,他直接替代內建的optparser來解析使用者使用的參數,同時還能自動列印出標準的usage/version/help提示資訊,還提供Unix, Gnu, X Toolkit三種風格支援
使用commanline很簡單,繼承他的CommandLine::Application即可
例子如下

class App < CommandLine::Application    def initialize      version           "0.0.1"      author            "Author Name"      copyright         "2005, Jim Freeze"      synopsis          "[-dhV] param_file out_file"      short_description "A simple app example that takes two arguments."      long_description  "app5 is a simple application example that supports "+                        "three options and two commandline arguments."      option :version      option :debug      option :help      expected_args   :param_file, :out_file    end    def main      puts "main called"      puts "@param_file = #{@param_file}"      puts "@out_file   = #{@out_file}"    end  end

通過執行ruby xxx.rb -h指令就可以立刻看到標準的help被列印出來

  NAME      xxx.rb - A simple app example that takes two arguments.  DESCRIPTION      xxx.rb is a simple application example that supports three options      and two commandline arguments.  OPTIONS      --version,-V          Displays application version.      --debug,-d          Sets debug to true.      --help,-h          Displays help page.  AUTHOR:  Author Name  Copyright (c) 2005, Jim Freeze
fastercsv:更快更簡單的csv庫

顧名思義, 就是更快csv處理庫, 偶看maillist上看到的評測是要快10倍(內建的實在太慢了,以至於fastercsv快它10倍還是比python版本的慢), 同時使用起來也比內建csv簡單, 一看就會(除非你根本不知道csv是什麼)
比如讀取一個csv檔案

  FasterCSV.foreach("path/to/file.csv") do |row|    puts row[0]    puts row[2]  end

使用header支援讀取cvs檔案

  FasterCSV.foreach("path/to/file.csv",:headers=>true) do |row|    #第一行是header,會自動忽略    puts row['fielda']    puts row['fieldc']  end

需要提醒的是它使用require 'faster_csv',類名卻是FasterCSV,不是很符合ruby的命名規則

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.