示例代码
解析 HTML
# python # # ruby
from puby import Object as rb #
rb.require("nokogiri") # require "nokogiri"
rb.require("open-uri") # require "open-uri"
url = "HTTP://www.Google.com/search?q=foo" # url = "http://www.Google.com/search?q=foo"
doc = rb.Nokogiri.HTML.parse(rb.open(url)) # doc = Nokogiri::HTML.parse(open(url))
for link in doc.CSS("h3.r a"): # doc.css("h3.r a").each do |link|
print link.content() # puts link.content
# end
执行 JavaScript:
from puby import Object as rb #
rb.require('V8') # require "v8"
ctx = rb.V8.Context.new() # ctx = V8::Context.new
print ctx.eval("'Xzibit ' + 7 * 6") # puts ctx.eval "'Xzibit ' + 7 * 6"
运行 Web 服务器:
from puby import Object as rb #
rb.require("rack") # require "rack"
#
def application(env): # def application(env)
return [200, # [200,
{"Content-Type": "text/html"}, # {"Content-Type" => "text/html"},
["Hello Puby!"]] # ["Hello Puby!"]]
# end
rb.Rack.Handler.Thin.run(application) # Rack::Handler::Thin.run method(:application)
回调示例:
from puby import Object as rb, RbCallback
rb.eval("""
class TestObj
def save_callback cb
@cb = cb
end
def call_callback x
@cb.call(x)
end
end
""")
obj = rb.TestObj.new()
def callback(x):
return x+1
callback_rb = RbCallback(callback)
obj.save_callback(callback_rb)
print obj.call_callback(5)