Time of Update: 2017-01-18
instance_eval方法這個BasicObject#instance_eval有點類似JS中的bind方法,不同的時,bind是將this傳入到對象中,而instance_eval則是將代碼塊(上下文探針Context Probe)傳入到指定的對象中,一個是傳對象,一個是傳執行體。通過這種方式就可以在instance_eval中的代碼塊裡訪問到調用者對象中的變數。範例程式碼class MyClass def initialize @v = 1 endendobj =
Time of Update: 2017-01-18
一個常量由大寫字母開頭.它應最多被賦值一次.在Ruby的目前的版本中,常量的再賦值只會產生警告而不是錯誤(non-ANSI版的eval.rb不會報告這一警告) ruby>fluid=30 30 ruby>fluid=31 31 ruby>Solid=32 32 ruby>Solid=33 (eval):1:
Time of Update: 2017-01-18
在這裡可以下載到適合您的最新的 Ruby 版本,當前穩定的版本是 1.8.6 。下載前請先閱讀 Ruby 開源許可 。Ruby 原始碼如果您欲使之與您的平台更為相容或者需要專一設定您的環境,那麼從原始碼安裝是最好的解決方案。如果有預先做好的 packages 需要安裝到您的平台上,這也是一個好的方法。Ruby 1.8.6 (md5: 23d2494aa94e7ae1ecbbb8c5e1507683) 穩定版 (推薦) 穩定版快照 這裡的 tar'ed 和 gzip'ed
Time of Update: 2017-01-18
前兩天在寫代碼的時候,突然收到警告說項目代碼中存在 XSS 漏洞,遂立即根據報告的 URL 排查頁面代碼,雖然很快就修複了,而且同樣問題的討論兩年前就有了,一般來說相對有經驗的同學也應該都知道這個點,但是還是覺得有必要寫出來,再次提醒一下其他小夥伴,避免踩坑。問題根源其中,在找到的漏洞出現的地方,都存在類似以下這樣的 slim 代碼:input class='xxx' value==params[:account]問題就出在雙等號 == 上,因為在 slim 跟 ERB 模板(其他模板比如
Time of Update: 2017-01-18
Ruby 環境變數Ruby 解譯器使用下列環境變數來控制它的行為。ENV 對象包含了所有當前設定的環境變數列表。對於 Unix,使用 env 命令來查看所有環境變數的列表。HOSTNAME=ip-72-167-112-17.ip.secureserver.netRUBYPATH=/usr/binSHELL=/bin/bashTERM=xtermHISTSIZE=1000SSH_CLIENT=122.169.131.179 1742
Time of Update: 2017-01-18
示範代碼: [code]#!/usr/bin/env ruby COUNT = 10 require '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] = ('0'..'9').to_a $password_chars[10
Time of Update: 2017-01-18
什麼是一個存取器? 我們在前面已經討論過實變數了,但卻未過多的討論.一個對象的實變數屬於它的屬性,也是它與其它來自同一個類的對象的一般區別.讀寫它的屬性是重要的;這樣做需要做一個叫著屬性存取器(attribute accessors)的方法.我們將很快看到我們並不是總要明確地寫出存取器方法,但現在先讓我們瞭解所有的細節.存取器的兩種類型是寫(writer)和讀(reader). ruby> class Fruit
Time of Update: 2017-01-18
我最近讀了些文章(比如這篇),宣傳在 Ruby 裡使用 method_missing 的。很多人都與 method_missing 乾柴烈火,但在並沒有小心處理彼此之間的關係。所以,我想來探討一下這個問題:** 我該怎麼用 method_missing **什麼時候該抵擋 method_missing 的誘惑首先,永遠不要在還沒花時間考慮你用得夠不夠好之前,就向 method_missing 的魅力屈服。你知道,在日常生活中,很少會讓你以為的那樣亟需
Time of Update: 2017-01-18
Ruby的哲學理念是基於一個基本的要素,那就是讓程式員快樂。Ruby非常注重程式員的快樂,並且也提供了許多不同的方法來實現它。 它的元編程能力能夠讓程式員編寫在運行時動態產生的程式碼。它的線程功能使得程式員有一種優雅的的方式編寫多線程代碼。 它的鉤子方法能讓程式員在程式運行時擴充它的行為。上述的這些特性,以及一些其他很酷的語言方面,使得Ruby成為編寫代碼的優先選擇之一。
Time of Update: 2017-01-18
動態規劃解決矩陣連乘問題,隨機產生矩陣序列,輸出形如((A1(A2A3))(A4A5))的結果。代碼:#encoding: utf-8=beginauthor: xu jin, 4100213date: Oct 28, 2012MatrixChainto find an optimum order by using MatrixChain algorithmexample output:The given array is:[30, 35, 15, 5, 10, 20, 25]The
Time of Update: 2017-01-18
有機會再試一試Rails了,只是原來接觸的是2,現在已然變成了4,似乎現在的安裝比原來會快些。。Rails 4 安裝針對於安裝了RVM複製代碼 代碼如下:gem install rails沒有的話應該這樣:複製代碼 代碼如下:sudo gem install rails安裝RVM可以用句複製代碼 代碼如下:curl -L https://get.rvm.io | bash -s stable查看rails版本複製代碼 代碼如下:rails -vRails
Time of Update: 2017-01-18
ruby,nokogori,爬取糗事百科最新的10頁加圖片比並同時儲存進文本跟資料庫複製代碼 代碼如下:#encoding:utf-8require "open-uri"require "nokogiri"require "mysql"@dbh=Mysql.real_connect("localhost","root","dengli","pachong")@file=open("qb.txt","w")def getQiubai(url) data=open(url){|f| f.
Time of Update: 2017-01-18
Private private 函數只能 在本類和子類的 上下文中調用,且只能通過self訪問。 這個意思就是:private函數,只能在本對象內部訪問到。 對象執行個體變數(@)的存取權限就是 private。 複製代碼 代碼如下: class AccessTest def test return “test private” end def test_other(other) “other object ”+ other.test end end t1 = AccessTest.new t2
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
本章節將向您講解如何使用 Ruby 訪問資料庫。Ruby DBI 模組為 Ruby 指令碼提供了類似於 Perl DBI 模組的獨立於資料庫的介面。DBI 即 Database independent interface,代表了 Ruby 獨立於資料庫的介面。DBI 在 Ruby 代碼與底層資料庫之間提供了一個抽象層,允許您簡單地實現資料庫切換。它定義了一系列方法、變數和規範,提供了一個獨立於資料庫的一致的資料庫介面。DBI 可與下列進行互動: ADO (
Time of Update: 2017-01-18
編寫一個最簡單的例子1. 建好如下檔案夾注意:lib目錄下必須有個和你gem名字一樣的rb檔案。複製代碼 代碼如下: $ cd hola $ tree . ├── hola.gemspec └── lib
Time of Update: 2017-01-18
1.返回字串的長度複製代碼 代碼如下:str.length => integer2.判斷字串中是否包含另一個串複製代碼 代碼如下:str.include? other_str => true or false"hello".include? "lo" #=> true"hello".include? "ol" #=> false"hello".include?
Time of Update: 2017-01-18
Ruby:多線程下載部落格文章到本地的完整代碼複製代碼 代碼如下:#encoding:utf-8require 'net/http'require 'thread'require 'open-uri'require 'nokogiri'require 'date'$queue = Queue.new#文章列表頁數page_nums = 8page_nums.times do |num|
Time of Update: 2017-01-18
自己閑來無事,用mechanize做了一個可以下載校內相簿照片的代碼。寫的有些簡陋。。。。主要是根據相簿的地址來分析使用者ID和相簿ID,然後類比請求相簿頁面,並提取所有照片,然後下載到本地的一個檔案夾中。ruby版本:ruby1.8.7 or ruby1.9.2作業系統:windows 7Linux下沒有試過~不過應該也可以的:複製代碼 代碼如下:#encoding: utf-8require 'rubygems'require 'mechanize'class Renren
Time of Update: 2017-01-18
在Ruby中,執行shell命令是一件不奇怪的事情,Ruby提供了大概6種方法供開發人員進行實現。這些方法都很簡單,本文將具體介紹一下如何在Ruby指令碼中進行調用終端命令。execexec會將指定的命令替換掉當前進程中的操作,指定命令結束後,進程結束。複製代碼 代碼如下:exec 'echo "hello world"'print 'abc'執行上述的命令,結果如下,我們可以看到沒有abc的輸出,可以看出來,在執行echo "hello