锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品亚洲成a人在线观看,久久久久国产精品一区三寸,亚洲一区二区三区中文字幕http://www.aygfsteel.com/Blake/category/1587.htmlJava Toxication!zh-cnTue, 27 Feb 2007 18:45:42 GMTTue, 27 Feb 2007 18:45:42 GMT60Ruby Jewellery [Updating...]http://www.aygfsteel.com/Blake/articles/5475.htmlBlake HANBlake HANThu, 02 Jun 2005 08:37:00 GMThttp://www.aygfsteel.com/Blake/articles/5475.htmlhttp://www.aygfsteel.com/Blake/comments/5475.htmlhttp://www.aygfsteel.com/Blake/articles/5475.html#Feedback0http://www.aygfsteel.com/Blake/comments/commentRss/5475.htmlhttp://www.aygfsteel.com/Blake/services/trackbacks/5475.htmlThis article will include many usefull examples. Let's enjoy Ruby!


 HTTP Client
Here is am example shows how to write HTTP client with Ruby.
require 'net/http'
def fetch(loc, port, url)
   z
=
nil
   h
=Net::HTTP.new(loc
,port)
   begin
     resp, data 
= h.get
(url,z)
     puts 
"Code = #{resp.code} #{resp.message}"

     resp.each {|key, val| printf "%-14s = %-40.40s\n", key, val}
     p data
   rescue Net::ProtoFatalError 
=>
 detail
     head 
=
 detail.data
     head.
each {|key,val| puts "#{key}    #{val}"
}
     
if head.code=="404"

         puts "File not Found"
     elsif head.code=="401"
         print "Authorization Required\n User name?"
         gets
         uname
=
$_.chomp
         
print "Password?"

         gets
         pwd
=
$_.chomp
         unpwd
=uname + ":" +
 pwd
         puts unpwd
         hval
=[unpwd].pack("m"
)
         z
={'Authorization' => 'Basic ' + hval}

         retry
     
end

   rescue SystemCallError
         puts 
"Can't connect"
   end
end

fetch(
'www.google.com', 80, '/')



Send email
Send email with Ruby:

 1 require 'net/smtp'
 2 SMTP_HOST = "192.168.60.99"
 3 

 4 def send(from, to, subject, msg)
 5   mail = "To: #{to}\r\n" +

 6          "From: #{from}\r\n" +
 7          "Subject: #{subject}\r\n" +
 8          "\r\n" +
 9          msg
10 

11   Net::SMTP.start(SMTP_HOST) do |smtp|
12     smtp.send_mail(mail, from, to
)
13   end

14 end
15 
16 from = "blake@192.168.60.99"
17 to = ["blake@192.168.60.99"]
18 send(from, to"test""Just a test!\ntest")

Notice:
1. 'mail' is the email body, it use "\r\n" to separate the mail header and mail context. So if you only want to send context without header, you should write: "mail = "\r\n" + msg". Otherwise your email will lost the context.


Calculate the total line number of files in one folder
This is one small tools to get the total file line number of on folder.
 
 1POST_FIX = %w{java jsp html xml properties}
 2EXCLUDE_DIR =
 %w{CVS}
 3$displayStr = ""

 4$fileReg = ""
 5$dirReg = "\\.|\\.\\.|"
 6

 7def sumLine(fileName)
 8  file =
 open fileName
 9
  begin
10    while
 file.gets()
11    end

12  ensure
13
    file.close
14  end

15  $.
16end

17
18def iteDir(name, level=0
)
19  lines = 0

20  dir = Dir.open name
21  rex = /\+ "java" +$|\.jsp$|\.html$/

22  begin
23    dir.each do
 |fileName|
24      fileName = dir.path + '/' + fileName

25      if File.ftype(fileName) =/directory/
26        if not fileName =~ Regexp.new($dirReg)
27          lines += iteDir(fileName, level+1
)
28        else

29          next
30        end
31      elsif fileName =~ Regexp.new($fileReg)
32        lines +=
 sumLine(fileName)
33      end

34    end
35  ensure
36
    dir.close
37  end

38  str = ""
39  for i in 0..(level-1)
40    str += "\t|"

41  end
42  if level != 0
43    str += "---"
44  end
45  $displayStr = "#{str}#{name}\t#{lines} lines\n#{$displayStr}"
46  lines
47end

48
49POST_FIX.each do
 |postfix|
50  $fileReg += "\.#{postfix}$|"

51end
52$fileReg = $fileReg.chop
53

54EXCLUDE_DIR.each do
 |excludeDir|
55  $dirReg += "^#{excludeDir}$|"

56end
57$dirReg = $dirReg.chop
58

59print "Total #{iteDir("E:/_MyWorkSpace/IDEA_Proj")} lines\n"

60print $displayStr

Keystone:
   1. Ruby I/O access. Dir and File
   2. Regexp & String -> Regexp
   3. Some kinds of variables
   4. Array operation



Technorati Tags: Ping Technorati



Blake HAN 2005-06-02 16:37 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 仲巴县| 海口市| 汝州市| 阳春市| 马公市| 威信县| 兰州市| 镇坪县| 北碚区| 萨嘎县| 皋兰县| 兴海县| 江川县| 楚雄市| 东兰县| 泰和县| 昌黎县| 湟中县| 景德镇市| 浮梁县| 潞城市| 碌曲县| 龙井市| 铁岭市| 仙桃市| 辽阳县| 罗山县| 金昌市| 桃园市| 友谊县| 鹤山市| 白沙| 历史| 星子县| 德州市| 甘谷县| 万荣县| 扎赉特旗| 房山区| 无极县| 依安县|