Time of Update: 2017-01-18
這篇文章主要介紹了我是如何把ruby gem contracts.ruby速度提升10倍的。contracts.ruby在我項目裡用來添加代碼合約(code contracts)到Ruby中。看起來差不多是這樣的:Contract Num, Num => Numdef add(a, b) a +
Time of Update: 2017-01-18
異常和執行總是被聯絡在一起。如果您開啟一個不存在的檔案,且沒有恰當地處理這種情況,那麼您的程式則被認為是低品質的。如果異常發生,則程式停止。異常用於處理各種類型的錯誤,這些錯誤可能在程式執行期間發生,所以要採取適當的行動,而不至於讓程式完全停止。Ruby 提供了一個完美的處理異常的機制。我們可以在 begin/end 塊中附上可能拋出異常的代碼,並使用 rescue 子句告訴 Ruby 完美要處理的異常類型。文法begin # - rescue OneTypeOfException # -
Time of Update: 2017-01-18
Ruby 提供了一整套 I/O 相關的方法,在核心(Kernel)模組中實現。所有的 I/O 方法派生自 IO 類。類 IO 提供了所有基礎的方法,比如 read、 write、 gets、 puts、 readline、 getc 和 printf。本章節將講解所有 Ruby 中可用的基礎的 I/O 函數。如需瞭解更多的函數,請查看 Ruby 的 IO 類。puts 語句在前面的章節中,您賦值給變數,然後使用 puts 語句列印輸出。puts
Time of Update: 2017-01-18
迭代器是集合支援的方法。儲存一組資料成員的對象稱為集合。在 Ruby 中,數組和散列可以稱之為集合。迭代器返回集合的所有元素,一個接著一個。在這裡我們將討論兩種迭代器,each 和 collect。Ruby each 迭代器each 迭代器返回數組或雜湊的所有元素。文法collection.each do |variable| codeend為集合中的每個元素執行 code。在這裡,集合可以是數組或雜湊。執行個體#!/usr/bin/rubyary = [1,2,3,4,5]ary.each
Time of Update: 2017-01-18
Time 類在 Ruby 中用於表示日期和時間。它是基於作業系統提供的系統日期和時間之上。該類可能無法表示 1970 年之前或者 2038 年之後的日期。本教程將讓您熟悉日期和時間的所有重要的概念。建立當前的日期和時間下面是擷取當前的日期和時間的簡單一實例:#!/usr/bin/ruby -w time1 = Time.new puts "Current Time : " + time1.inspect # Time.now 是一個同義字time2 = Time.nowputs
Time of Update: 2017-01-18
Ruby 中的迴圈用於執行相同的代碼塊若干次。本章節將詳細介紹 Ruby 支援的所有迴圈語句。Ruby while 語句文法while conditional [do] codeend當 conditional 為真時,執行 code。while 迴圈的 conditional 通過保留字 do、一個分行符號、反斜線 \ 或一個分號 ; ,來與 code 分離開。執行個體#!/usr/bin/ruby $i = 0$num = 5 while $i < $num do
Time of Update: 2017-01-18
雜湊(Hash)是類似 "employee" => "salary" 這樣的索引值對的集合。雜湊的索引是通過任何物件類型的任意鍵來完成的,而不是一個整數索引,其他與數組相似。通過鍵或值遍曆雜湊的順序看起來是隨意的,且通常不是按照插入順序。如果您嘗試通過一個不存在的鍵訪問雜湊,則方法會返回 nil。建立雜湊與數組一樣,有各種不同的方式來建立雜湊。您可以通過 new 類方法建立一個空的雜湊:months = Hash.new您也可以使用 new 建立帶有預設值的雜湊,不帶預設值的雜湊是
Time of Update: 2017-01-18
Ruby 全域變數全域變數以 $ 開頭。未初始化的全域變數的值為 nil,在使用 -w 選項後,會產生警告。給全域變數賦值會改變全域狀態,所以不建議使用全域變數。下面的執行個體顯示了全域變數的用法。#!/usr/bin/ruby $global_variable = 10class Class1 def print_global puts "Global variable in Class1 is #$global_variable" endendclass Class2 def
Time of Update: 2017-01-18
環境配置在使用 Ruby 編碼或解碼 JSON 資料前,我們需要先安裝 Ruby JSON 模組。在安裝該模組前你需要先安裝 Ruby gem,我們使用 Ruby gem 安裝 JSON 模組。 但是,如果你使用的是最新版本的 Ruby,可能已經安裝了 gem,解析來我們就可以使用以下命令來安裝Ruby JSON 模組:$gem install json使用 Ruby 解析 JSON以下為JSON資料,將該資料存放區在 input.json 檔案中:{ "President": "Alan
Time of Update: 2017-01-18
每個正在系統上啟動並執行程式都是一個進程。每個進程包含一到多個線程。線程是程式中一個單一的順序控制流程程,在單個程式中同時運行多個線程完成不同的工作,稱為多線程。Ruby 中我們可以通過 Thread 類來建立多線程,Ruby的線程是一個輕量級的,可以以高效的方式來實現並行的代碼。建立 Ruby 線程要啟動一個新的線程,只需要調用 Thread.new 即可:# 線程 #1 代碼部分Thread.new { # 線程 #2 執行代碼}# 線程 #1
Time of Update: 2017-01-18
SMTP(Simple Mail Transfer Protocol)即簡易郵件傳輸通訊協定,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。Ruby提供了 Net::SMTP 來發送郵件,並提供了兩個方法 new 和 start: new 方法有兩個參數: server name 預設為 localhost &
Time of Update: 2017-01-18
Ruby 是純物件導向的語言,Ruby 中的一切都是以對象的形式出現。Ruby 中的每個值都是一個對象,即使是最原始的東西:字串、數字,甚至連 true 和 false 都是對象。類本身也是一個對象,是 Class 類的一個執行個體。本章將向您講解所有與 Ruby 物件導向相關的主要功能。類用於指定對象的形式,它結合了資料標記法和方法,把資料整理成一個整齊的包。類中的資料和方法被稱為類的成員。Ruby
Time of Update: 2017-01-18
本章節將向您講解如何使用 Ruby 訪問資料庫。Ruby DBI 模組為 Ruby 指令碼提供了類似於 Perl DBI 模組的獨立於資料庫的介面。DBI 即 Database independent interface,代表了 Ruby 獨立於資料庫的介面。DBI 在 Ruby 代碼與底層資料庫之間提供了一個抽象層,允許您簡單地實現資料庫切換。它定義了一系列方法、變數和規範,提供了一個獨立於資料庫的一致的資料庫介面。DBI 可與下列進行互動: ADO (
Time of Update: 2017-01-18
什麼是 XML ?XML 指可延伸標記語言 (XML)(eXtensible Markup Language)。可延伸標記語言 (XML),標準通用標記語言 (SGML)的子集,一種用於標記電子檔案使其具有結構性的標記語言。它可以用來標記資料、定義資料類型,是一種允許使用者對自己的標記語言進行定義的源語言。 它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化資料。XML解析器結構和APIXML的解析器主要有DOM和SAX兩種。 &
Time of Update: 2017-01-18
Ruby提供了兩個層級訪問網路的服務,在底層你可以訪問作業系統,它可以讓你實現用戶端和伺服器為連線導向和無連線協定的基本通訊端支援。Ruby 統一支援應用程的網路通訊協定,如FTP、HTTP等。不管是高層的還是底層的。ruby提供了一些基本類,讓你可以使用TCP,UDP,SOCKS等很多協議互動,而不必拘泥在網路層。這些類也提供了輔助類,讓你可以輕鬆的對伺服器進行讀寫。接下來就讓我們來學習如何進行 Ruby Socket 編程什麼是
Time of Update: 2017-01-18
編寫一個最簡單的例子1. 建好如下檔案夾注意:lib目錄下必須有個和你gem名字一樣的rb檔案。複製代碼 代碼如下: $ cd hola $ tree . ├── hola.gemspec └── lib
Time of Update: 2017-01-18
在去年的YOW Melbourne開發人員大會上,我參加了一些研習班。這些研習班由@coreyhaines和
Time of Update: 2017-01-18
簡介: 假設您是一名 C++ 開發人員,您需要使用 Ruby 快速執行一些原型設計。當您拿起一本 Ruby 參考書籍(比如 Pickaxe)或瀏覽 Ruby 網站時,會看到一些熟悉的構造,比如類聲明、線程支援和異常處理。正當您認為自己瞭解 Ruby 的工作原理之時,您意識到了,您 Ruby 代碼中的並發機制與 Boost 線程工作原理不一樣,catch 和 throw 也與它們看上去的大不相同,而且其他人在其 Ruby 指令碼中各處使用了名為 self 的關鍵詞。歡迎來到 Ruby
Time of Update: 2017-01-18
Web 應用程式大多是 IO 密集型的,利用 Ruby 多進程+多執行緒模式將能大幅提升系統輸送量。其原因在於:當Ruby 某個線程處於 IO Block 狀態時,其它的線程還可以繼續執行。但由於存在 Ruby GIL (Global Interpreter Lock),MRI Ruby 並不能真正利用多線程進行並行計算。JRuby 去除了 GIL,是真正意義的多線程,既能應付 IO Block,也能充分利用多核 CPU 加快整體運算速度。上面說得比較抽象,下面就用例子一一加以說明。Ruby
Time of Update: 2017-01-18
MiniTest 是新一代的 Ruby 測試架構,它已經成為 Ruby 1.9 的內建測試架構,據說它也將成為Rails 4的預設測試架構,可謂前途一片光明。MiniTest 為什麼成為最新 Ruby 和 Rails 的首選,它有哪些迷人的東西呢?Ruby 1.8時代,Ruby 和 Rails 的預設測試架構都是 TestUnit,TestUnit 曆史悠久,它最大的問題是太慢,太臃腫了,它包含了一堆現在很少使用的第三方庫,比如GTk v1, GTk v2,