锘??xml version="1.0" encoding="utf-8" standalone="yes"?>h网站在线播放,日本精品专区,国产三级电影在线观看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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 洛扎县| 安泽县| 梧州市| 理塘县| 揭东县| 盘锦市| 汕尾市| 芜湖县| 东莞市| 兴海县| 饶阳县| 建平县| 繁昌县| 盱眙县| 宁安市| 宣武区| 西城区| 贡嘎县| 昌都县| 永兴县| 济源市| 松原市| 日土县| 安陆市| 武清区| 岑巩县| 来凤县| 天气| 大冶市| 华阴市| 江阴市| 靖西县| 旅游| 平阴县| 乐山市| 武山县| 南皮县| 宁化县| 彭泽县| 广州市| 宜都市|