用ruby兩星期總結

來源:互聯網
上載者:User

   最近用ruby寫一個automation, 用了兩星期, 覺得蠻方便的.談談感受吧:

   1. ruby讀取yaml檔案方便,當時對.ini檔案的處理,沒有發現有庫支援,就查閱了網上的代碼,自己改改用了.

       對yaml檔案的讀取,ruby蠻方便的.但是想修改yaml檔案中的一項,類似於.ini檔案的處理還是需要自己動手寫程式支援.

      這裡要提到一個輸出語句: p [something] 注意這裡不是puts和print. puts列印出來的東西預設有斷行符號,而print列印出來的

     東西預設沒有斷行符號.p 會列印出something的類型,比如字串會把雙引號打出來,會列印出數組.

     比如在讀取yaml檔案或者其他類型檔案的時候,可以用p來列印出來,看看讀取的是什麼東西,對於調試很有作用.

     比如yaml檔案中有這樣的表示:

     BuildResults:

          - modes: release

            path: c:/build/result/release

         -  modes: debug

            path: c:/build/result/debug

        -  modes: custom

           path: c:/build/result/custom

     對這樣的表示就可以用p語句去列印出來,看看到時是什麼結構:

     require 'YAML"

     yaml = YAML.load(File.open(....))

    buildResults = yaml['BuildResults']

     p  buildResults

     知道了其資料結果,就做相應的處理.

 2.Regex,逃不過的話題,我不熟悉這玩藝,或者說學會了,不用就會忘.所以大概知道意思.

   用的時候,我參考一個網站: http://www.rubular.com/   真是給我節省了不少麻煩.

   順便說個知識點: /....../ 和/......./i 的區別, 前面那個區分運算式的大小寫,後面那個不區分大小寫.

 3. 對了把IDE給忘了,好的IDE提高工作效率毋庸置疑,我這裡用的是 Aptana Studio 3. 總體感覺一般把,不過

    夠用了。有好的開源的,可以幫哥們推薦一下。

 4. 對了ruby對解釋出錯的提示還是比較一般。比如哥們用到一個庫函數,但是急於使用函數,把函數前面的命名空間給

   忘了,後來ruby提示:<name error>. 當時我還調試一會。我在網上查了,發現有這種錯誤的同學還蠻多。

   還有就是在寫automation的時候,經常要進行路徑比較,比如String的 == 操作,include?操作等,但是一定要注意

  操作符兩邊的字串大小寫要一致,比如a = "C:/goo.txt"      b = "c:/goo.txt"  如果寫成 a == b 或者是 a.include?("c:/goo.txt")都

  會返回false.  可以這樣:a.downcase == b.downcase  a.downcase.include?("c:/goo.txt") 

 

就這樣簡單寫一下吧。有的玩藝說的不清楚,請諒解。

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.