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中實現網頁抓取,一般用的是mechanize,使用非常簡單。安裝複製代碼 代碼如下:sudo gem install mechanize抓取網頁複製代碼 代碼如下:require 'rubygems'require 'mechanize'agent = Mechanize.newpage = agent.get('http://google.com/')類比點擊事件複製代碼 代碼如下:page = agent.page.link_with(:text =>
Time of Update: 2017-01-18
當我們在寫模組的時候,或多或少需要直接運行這個檔案也可以執行一些方法,但是這樣對於當這個模組被require或者include時,顯得不好,在ruby裡,有沒有區分運行來自當前檔案,還是被require的目標檔案調用呢?Python可以比如像Python這樣複製代碼 代碼如下:if __name__ == '__main__': print "from direct
Time of Update: 2017-01-18
最近參加七牛的demo大賽,決定使用ruby開發。於是遇到了一些疑問,然後解決了,這裡記錄一下。在Ruby中,Gem是一個很常見的東西,其相當於外掛程式,Ruby有很多很棒的gem,避免了我們重複造輪子,我的demo中需要安裝gem,但是為了更加實現好一些,先檢測gem是否已經安裝,如果沒有安裝,在繼續安裝,否則不安裝。於是,怎麼在Ruby中檢測gem是否安裝呢,其實也很簡單,直接上代碼就可以了。不需太多解釋。begin…rescue…相當於java中的try catch。複製代碼 代碼如下:#
Time of Update: 2017-01-18
初學Ruby,很多需要學習,現在開始嘗試使用Ruby來寫一個指令碼,其中用到了很多檔案相關的操作,這裡階段地整理一些。便於後續的再次尋找。檔案或目錄是否存在複製代碼 代碼如下:File.exist?('file_path')是否為檔案複製代碼 代碼如下:File.file?("file_path")是否為目錄複製代碼 代碼如下:File.directory?("file_path")從路徑中擷取檔案名稱複製代碼
Time of Update: 2017-01-18
最近從設計師那裡get了超多的圖,結果都是1.png,2.png這樣的檔案名稱,自己還需要將這些檔案變成可讀的檔案名稱,不想一個一個得修改,於是就寫了一個簡單的指令碼,實現批量對多個檔案增加首碼的操作,後期修改了一下,分享一下。代碼複製代碼 代碼如下:#!/usr/bin/env ruby# encoding: utf-8srcDir= ARGV[0]prefix= ARGV[1]pattern = '*'pattern = ARGV[2] if ARGV.size ==
Time of Update: 2017-01-18
使用Git管理代碼工程,著實方便了很多,但是當做完feature分支或者完成hotfix之後,總是忘記刪除這些無用的分支,一個一個地刪除著實麻煩,重複手工勞動不符合程式員的風格,於是寫了一個簡單的指令碼。一鍵刪除那些不需要的分支,讓多餘的幹擾資訊離開視線。刪除哪些分支?刪除的為Merge(合并)操作的源分支。如果工程正在處於分支A(HEAD為A分支),分支B已經合并到了分支A,即A分支包含了B分支的內容,則會刪除B分支。代碼複製代碼 代碼如下:#!/usr/bin/env ruby#
Time of Update: 2017-01-18
最近打包伺服器上的apk包又增多了,每次手動rm操作過於麻煩,於是花了幾分鐘寫了一個可以對指定目錄下根據最後修改時間和萬用字元匹配進行大量刪除的指令碼。將這個指令碼加入crontab中之後,以後就再也不用擔心多餘的安裝包佔用磁碟空間了。簡短的代碼複製代碼 代碼如下:#!/usr/bin/env ruby# encoding: utf-8#Usage: ruby removeOldFiles.rb "dest_file_pattern" days_agodestFilePattern= ARGV[
Time of Update: 2017-01-18
Ruby是一個開源的動態程式設計語言,它有優美的文法,可用於構建可伸縮的Web應用程式。ruby gems可以很好地增強Ruby開發人員的開發效率。要在Ubuntu系統上安裝Ruby,有幾種方法,每種方法都只需幾步就能搞定。方法一:使用apt-get安裝可以直接使用兩個命令完成Ruby的安裝。複製代碼 代碼如下:# sudo apt-get update# sudo apt-get install ruby或者複製代碼 代碼如下:# sudo apt-get install
Time of Update: 2017-01-18
在ruby中我們要實現遍曆指定目錄的方法,網上的方法也非常之多,我們可以拿來參考參考,如下邊的traverse.rb檔案內容所示:複製代碼 代碼如下:#!/usr/bin/ruby def traverse(filepath) if File.directory?(filepath) puts "Dirs:" + filepath
Time of Update: 2017-01-18
begin和end是ruby的關鍵字,但是Range中也有名稱為begin和end的執行個體方法。現在問題來了:怎麼建立它們的別名方法?如果用class Range;alias begin_x begin end是不行的,ruby以為後面一個begin是某個文法塊的開頭啊:複製代碼 代碼如下:2.1.2 :089 > class Range;alias begin0 begin end2.1.2 :090?> 用class Range;alias
Time of Update: 2017-01-18
因為windows的檔案刪除機制和unix like的不一樣,so不保證如下代碼能在windows中使用,哪位童鞋幫我在windows中測試一下也好啊!複製代碼 代碼如下:#!/usr/bin/ruby5.times do |x| File.open($0,"w+") do |f| f.puts "module M" f.puts "def M.var;#{x**x} end" f.puts
Time of Update: 2017-01-18
ruby中有很多經典的磁碟機結構,比如列舉程式和產生器等.這次簡單介紹下產生器的概念.產生器是按照功能要求,一次產生一個對象,或稱之為產生一個對象的方法.ruby中的連續體正好可以用來完成組建器的功能.連續體說起來晦澀,其實還是很簡單的,它有3個特點:1. callcc方法會給代碼塊傳一個連續體對象,你可以儲存該對象;2. 當調用連續體的call方法時指令流會跳轉到callcc方法之後;3.
Time of Update: 2017-01-18
1.如何聲明一個子類複製代碼 代碼如下:class Treasure < Thing這樣Thing類中的屬性name,description都被Treasure繼承2.以下三種方式傳入父類initialize方法的參數分別是什嗎?複製代碼 代碼如下:# This passes a, b, c to the superclassdef initialize( a, b, c, d, e, f ) super( a, b, c )end# This passes a, b, c to
Time of Update: 2017-01-18
為了證明Ruby真的好用,hello world也能寫的如此簡潔:複製代碼 代碼如下:puts 'hello world'1.輸入/輸出複製代碼 代碼如下:print('Enter your name')name=gets()puts("Hello #{name}")註:Ruby是區分大小寫2.String類 puts("Hello #{name}")中的變數 name是內嵌在整個String裡的,通過 #{ }
Time of Update: 2017-01-18
需求為:從鍵盤輸入分數,以此來判斷,0-59為不及格,列印“您沒有及格,請下次努力!”,60-79為及格,列印“您的成績及格,請更加努力!”,80-100為成績良,列印“您的成績為優秀,請再接再厲!”,如果輸入為0-100以外的分數,請列印“您的成績為優秀,請再接再厲!”如果採用ruby方式,代碼比較精簡,如下所示:複製代碼 代碼如下:#!/usr/bin/rubyprint "請輸入您的分數: "grade = gets.to_i#grade = name.to_icase
Time of Update: 2017-01-18
Ruby由於吸收了Perl的Regex和Python的可讀性,所以其中的計數取值方法,是非常人性化和靈活的,這裡可以舉例來說明下:一、列印7次“hello,world”,如下:複製代碼 代碼如下:7.times{puts "hello,world"}#在這裡,puts的作用等同於print+"\n"二、依次列印1..9,在ruby中的方法就更多了,這裡用比較簡單的方式來實現,如下:複製代碼 代碼如下:(1..9).each{|i| print i," "}三、列印1..9中比7要小的數值,如下:
Time of Update: 2017-01-18
在Ruby中我們定義一個wc方法,用來統計檔案中出現的文本行數、單詞數和字元數,ruby代碼程式如下:複製代碼 代碼如下:def wc(filename) nline = nword = nchar = 0 File.open(filename) do |io| io.each_line do |line| words =
Time of Update: 2017-01-18
最近由於要做課設,所以昨天裝了個 Windows,感覺閑的沒事幹,就想裝個 Ruby 玩玩。官方的 Rubygems 源由於有些資源放在 Amazon S3 上面,所以有時會抽風,在 Linux 下我用 proxychains gem install xxx 實現了指定程式實行 Shadowsocks 代理,但是 Windows 下不方便全域代理,所以就考慮換國內的淘寶源了。之前換過一兩次,但是由於只是兩行命令而又不經常使用,所以就忘了,這次把它記錄下來。複製代碼 代碼如下:#
Time of Update: 2017-01-18
%{String} 用於建立一個使用雙引號括起來的字串 %Q{String} 用於建立一個使用雙引號括起來的字串複製代碼 代碼如下:str=<<END_OF_STRING a string END_OF_STRING %Q!Some String of “Characters”! <==> ” Some String of /”Characters/” “%q{String} 用於建立一個使用單引號括起來的字串%q!Some