脫離Rails看Ruby:在搭上Rails潮流之前瞭解Ruby

簡介:Ruby on Rails 只是使 Ruby 非常強大的方面之一,就像 EJB 只是 Java企業平台的一部分一 樣。Andrew Glover 揭示了 Java 開發人員可以使用 Ruby 做什麼。在開始這篇文章之前,我需 要澄清一些事情。首先,這不是一篇關於 Ruby on Rails 的文章。如果您希望瞭解 Rails,每周(甚至 每小時)都有相關的文章和 blog 出現,它們都對這個令人興奮的架構的眾多特性大加推崇;請參見 參 考資料 中的列表。其次,本文並不是想預言,Java

在Ruby中對字串和block求解

介紹對包含代碼的字串和block求解,是我最鐘愛的Ruby特性之一。Ruby提供了多種不同類型的求解方式;不過我最常用的是下面這些:eval、instance_eval和class_eval。Module.class_eval使用Module類的class_eval(及其別名module_eval)方法,可以在一個類的定義或者module定義的上下文中對給定字串或block進行求解。我們常常用class_eval來向類的定義中加入方法,或是包含其他的module。klass =

在linux和Windows環境下安裝Ruby

一、在linux下安裝Ruby1 - 首先,我們要取得最新的Ruby發行版本(目前是Ruby-1.8.2.tar.gz)。請到 www.ruby-lang.org/en/20020102.html 下載。2 - 然後解壓縮:tar -zxf ruby-1.8.2.tar.gz3 - 最後運行:./configuremakemake install這是基本的linux下軟體安裝方式:)4 - OK,現在敲:ruby

用Ruby+Builder建立XML應用

一、 簡介自從去年Ruby on Rails問世後,人們對Ruby程式設計語言的興趣似乎穩定地增長起來。Rails已經協助人 們看到了什麼是Ruby:一種非常體面的,易學的且使用中充滿了樂趣的語言,甚至適合於工業級應用軟體 的開發。Ruby出現在幾乎與Java差不多的年代,但是直到如今它才引起人們的關注。Ruby當然也引起我的注意!最近,我發現自己使用Ruby的時間多於Java了,因為它可以協助我更快地

ruby中的類變數與類執行個體變數

首先,在ruby1.8中類變數是所有子類和父類共用的,可以看下面的代碼:class IntelligentLife @@home_planet = nil def  self.home_planet  @@home_planet end def self.home_planet=(x)  

基於Ruby的元編程技術

元編程並不是一個很新的概念,通常元編程被認為是通過程式來產生程式,如果從這種意義上來考慮,那麼lex和yacc以及JavaCC應該都可以算是具有了元編程的概念,在Java中,元編程得到了廣泛的應用。但在Ruby中,元編程的使用變得相當的簡單和容易實現,使用Ruby語言本身來產生Ruby代碼,不需要藉助外部的工具,著名的RoR架構就是建立在Ruby元編程的基礎上的。可能你對元編程還沒什麼概念,但是Ruby已經內建了元編程這種機制,所以很有可能,你在不知不覺中就已經使用了Ruby元編程技術為你帶來的

初用ruby的幾個注意事項

今天按照Agile Web Development with Rails 的depot例子,準備根據資料庫表自動產生scaffold,那天在公司把這個例子做了一遍,覺得挺順利,沒想到今天換到家裡的機子後,出現了不少問題.在這裡記錄一下出現的問題及解決辦法.1.建立好資料庫和products表後,執行cmd>ruby script/generate scaffold

Ruby進行檔案資訊輸出執行個體代碼

資料是隨機的,所以每次的記錄都會不同。示範代碼:[code]#!/usr/bin/env rubyCOUNT = 10require 'benchmark'$account_chars = ('A'..'Z').to_a.delete_if {|c| c =~ /[AEIOUY]/ }#$password_chars = ('0'..'9').to_a$password_chars = Array.new$password_chars[0..9] =

ruby寫掃描當前網頁所有url的指令碼

用ruby寫的掃描當前網頁所有url的指令碼,對於學習ruby的朋友是個不錯的執行個體#scanweb.rb#用法ruby scanweb.rb www.jb51.net 將當前結果儲存在c:\1.txtrequire 'net/http'filename= File.new('c:\1.txt',"w+")if $*[0]==nilputs "hehe,沒有輸入網址"elseh = Net::HTTP.new($*[0], 80)resp, data =

Ruby寫Servlet的小例子

Ruby也能寫servlet?是的,沒開玩笑,而且挺方便的,因為Ruby的標準庫就內建了一個webrick,webrick本身又有一個serlvet容器,隨時隨地啟動一個web server,實在是很方便。先看個最簡單的例子,輸出hello到瀏覽器:require 'webrick'require 'net/http'include WEBrickclass HelloServlet < HTTPServlet::AbstractServlet def hello(resp)  resp[

Ruby的代碼塊、迭代子和過程對象

在Ruby的一切都是一個對象。甚至一個代碼塊也是一個對象!在Ruby中,代碼對象被稱為代碼塊。你可以把代碼塊想像成小的程式單元。它們包含Ruby代碼並且能夠在執行它們時轉入到方法中。在Python,C和Java中與之類似的概念是函數指標,匿名函數,內部類和回呼函數。Ruby代碼塊的文法是,把Ruby代碼放在大括弧之間或放在do/end命令之間。如下所示:{#這是一個代碼塊...}do#...並且這也是一個代碼塊end在一個很簡單的執行個體中,{puts"hello

ruby異常處理:ensure

當一個方法結束工作時我們也許需要進行清理工作.也許一個開啟的檔案需要關閉,緩衝區的資料應清 空等等.如果對於每一個方法這裡永遠只有一個退出點,我們可以心安理得地將我們的清理代碼放在一個地 方並知道它會被執行;但一個方法可能從多個地方返回,或者因為異常我們的清理代碼被意外跳過.beginfile = open("/tmp/some_file", "w")# ... write to the file

ruby數組使用教程

你通過在方括弧裡列出元素並用逗號將它們相互隔開來建立一個數組. Ruby的數組可以適應不同的物件類型ruby> ary = [1, 2, "3"][1, 2, "3"]就像前面提到的字串一樣.數組也可以相乘或相加ruby> ary + ["foo", "bar"][1, 2, "3", "foo", "bar"]ruby> ary * 2[

ruby的實變數

一個實變數由@開頭,它的範圍限制在 self 對象內.兩個不同的對象,即使屬於同一個類,也可以擁有不同值的實變數.從對象外部來看,實變數不能改變甚至觀察(比如, Ruby的實變數從來不是公用的),除非方法由程式員明確聲明.像全域變數一樣,實變數在初始前的值是nil.Ruby的實變數用不著聲明.這暗含著對象的彈性結構.實際上,每個實變數都是在第一次出現時動態加入對象的.ruby> class InstTest| def set_foo(n)| @foo = n| end| def

ruby的模組

Ruby的模組非常類似類,除了:模組不可以有實體模組不可以有子類模組由module...end定義.實際上...模組的'模組類'是'類的類'這個類的父類.搞懂了嗎?不懂?讓我們繼續看下去吧.模組有兩種用法.其一是將相近的方法和實體放在一個相對集中的域裡.Ruby標準包裡的Math模組就扮演著這一角色:ruby> Math.sqrt(2)1.41421ruby> Math::PI3.14159::操作符告訴 Ruby

ruby的類常量解析

一個常量由大寫字母開頭.它應最多被賦值一次.在Ruby的目前的版本中,常量的再賦值只會產生警告而不是錯誤(non-ANSI版的eval.rb不會報告這一警告)ruby>fluid=3030ruby>fluid=3131ruby>Solid=3232ruby>Solid=33(eval):1: warning: already initialized constant Solid33常量可以定義在類裡,但不像實變數,它們可以在類的外部存取.ruby> class

ruby的局部變數

局部變數由小寫字母或底線(_)開頭.局部變數不像全域和實變數一樣在初始化前含nil值.ruby> $foonilruby> @foonilruby> fooERR: (eval):1: undefined local variable or method `foo' for main(Object)對局部變數的第一次賦值做的很像一次聲明.如果你指向一個未初始化的局部變數,Ruby解譯器會認為那是一個方法的名字;正如上面所見錯誤資訊的.一般的,局部變數的範圍會是proc{...}

ruby對象的初始化方法

前面一節的 Fruit 類有兩個實變數,分別表述水果的類型和狀態.直到為這個類寫了一個定製的inspect方法,我們方才瞭解它不會對一個缺乏屬性的水果做出合理的解釋.幸運的是,Ruby提供了一種允許實變數總是被初始化的方法.initalize方法當Ruby建立一個新對象時,它總是會尋找一個名為 initialize 的方法並執行它.因此,我們可以簡單通過一個initialize方法向實變數中加入預設值,這樣一來, inspect方法就有東西可說了.ruby> class Fruit|

ruby迭代器使用方法

迭代器並不是Ruby發明的.它廣泛地運用於各種物件導向語言.在Lisp中也有,只是不這麼叫罷了.儘管如此,迭代器的概念並不為許多人熟悉,因此我們將在此做較為詳細的介紹.你知道,動詞 iterate 的意思是做同一件事許多遍,因此,iterator就是用來將同一件事做許多次的東西.當我們寫代碼時,我們需要各種環境下的迴圈.在C裡,我們用for或者while.比如,char *str;for (str = "abcdefg"; *str != '\0'; str++) {/*

ruby存取器的概念

什麼是一個存取器?我們在前面已經討論過實變數了,但卻未過多的討論.一個對象的實變數屬於它的屬性,也是它與其它來自同一個類的對象的一般區別.讀寫它的屬性是重要的;這樣做需要做一個叫著屬性存取器(attribute accessors)的方法.我們將很快看到我們並不是總要明確地寫出存取器方法,但現在先讓我們瞭解所有的細節.存取器的兩種類型是寫(writer)和讀(reader).ruby> class Fruit| def set_kind(k) # a writer| @kind = k|

總頁數: 85 1 .... 57 58 59 60 61 .... 85 Go to: 前往

聯繫我們

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