Time of Update: 2017-01-18
其實只要你任性的可以,用telnet也是可以發郵件的哦。不過本貓沒那麼任性,還是用KISS原則來發郵件吧。本篇博文只介紹了如何發郵件,但沒涉及收郵件的事,以後如有機會會單獨開一篇博文介紹。Ruby通過smtp發郵件有2種操作手段,一是直接用Net::SMTP來發送,比較底層。如果還要發送附件,則需要額外gem:mailfactory,而mailfactory又依賴於包mime-types。即便如此如果郵件伺服器串連需要ssl,則還需要require檔案smtp-tls.rb,而這個rb檔案需要o
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
Time of Update: 2017-01-18
今天被問到此類問題,以前總是覺得這個是比較寬泛的一個概念,自己即使是用過這些特性,但卻一直不知道這叫“元編程” 直到今天被人問起的時候,方才頓悟一些,隨後便在網上和自己的平實用的一些元編程做個小總結。原來所謂的Ruby中的元編程,是可以在運行時動態操作語言結構(如類、模組、執行個體變數等)的技術。你甚至於可以在不用重啟的情況下,在運行時直接鍵入一段新的Ruby代碼,並執行他。 Ruby的元編程,也具有“利用代碼來編寫代碼”的作用。例如,常見的attr_accessor等方法就是如此。&
Time of Update: 2017-01-18
Skynet是一個很響亮的名字,因為它是阿諾施瓦辛格主演的經典系列電影《終結者》裡面的統治人類的超級電腦網路。不過本文的Skynet沒這麼恐怖,它是一個ruby版本的Google
Time of Update: 2017-01-18
大資料操作中涉及到資料清洗步奏還是用指令碼處理比較方便,下邊介紹一下pig載入hdfs檔案後調用ruby指令碼處理資料,再返回資料流至pig中處理的一個簡單案例。注意:ruby的串流用到wukong這個gem包,相關下載: https://github.com/mrflip/wukongpig中載入分布式檔案調用ruby串流: 複製代碼 代碼如下:log = load '$INFILE' using PigStorage('\t');define tracking_parser
Time of Update: 2017-01-18
郵件伺服器接收到郵件後,service push通知程式。有什麼辦法實現嗎?1、用戶端輪詢2、伺服器主動推送。首先熟悉一下,收發郵件的協議: Net::SMTP(發送郵件) Net::POP3(內送郵件)
Time of Update: 2017-01-18
最近在學習Rails,因為學習的java為入門語言.些許的不太適應.特別是Ruby的Hash.不過細細的想想就通了.基本上都是通的Key-Value.除了剛開始不太適應寫法沒什麼大的問題.這個是我在網上看到的一篇日誌.1. 如何建立Hash? 複製代碼 代碼如下:x = Hash.new x = {} x = {:a => 1, :b => 2} 這些都是建立Hash的方法。 第一個和第二個一樣,表示建立空的Hash. 第三個表示建立的Hash,有2對鍵/值。2.
Time of Update: 2017-01-18
總結一下工作中遇到的類擴充:1、類繼承: 當多個類公用很多方法的時候可以將公用方法部分抽取出來,需要的類做相關繼承。例子:複製代碼 代碼如下:class A < ActiveRecord::Base def a p "it was a " endendclass B<Aendclass C<AendB.new.a
Time of Update: 2017-01-18
簡便方法的用法現有一個字串列表,需要對其中的每個字串執行轉換大寫操作,我們可以用一個簡便寫法來完成。複製代碼 代碼如下:name_list = ["chareice", "angel"]name_list.map(&:upcase)# => ["CHAREICE", "ANGEL"]這個寫法等同於複製代碼 代碼如下:name_list.map do {|name|
Time of Update: 2017-01-18
在ActiveRecord可以用很方便的聲明方式來定義model之間的關聯關係,例如:複製代碼 代碼如下:class Topic < ActiveRecord::Base has_many :posts belongs_to :userendhas_many和belongs_to其實是Topic類的class method,標準寫法是:複製代碼 代碼如下:class Topic < ActiveRecord::Base
Time of Update: 2017-01-18
1、String對象定義String對象的定義可以使用""和'',對於單純的字串,推薦使用''進行定義,效率比""高,""與''的區別在於,''內的字串定義後就是最終形態,即使如\n分行符號,也會原樣輸出,而""更像是一個運算式,解析器會針對其中的特殊字元進行處理,然後才會輸出,如下範例程式碼:複製代碼 代碼如下:i = 100s1 = 'The value of i variable is #{i}!\n' #The value of i variable is #{i}
Time of Update: 2017-01-18
1、關鍵字關鍵字不能用於定義變數或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yield,not,and,or,true,false,nil,rescue,ensure,super,self,begin,end,BEGIN,END,__FILE__,