注册

Ruby 的 Python 接口 puby

本帖最后由 独孤求败 于 2015-2-22 15:22 编辑

puby 是 Ruby 解释器的 Python 接口。示例代码解析 HTML
# python # # ruby
from puby import Object as rb #
rb.require("nokogiri") # require "nokogiri"
rb.require("open-uri") # require "open-uri"

url = "**://**.google.com/search?q=foo" # url = "**://**.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"},
] # ]
# end
rb.Rack.Handler.Thin.run(application) # Rack::Handler::Thin.run method(:application)回调示例:from puby import Object as rb, RbCallback

rb.eval("""
cl** **Obj
def save_callback cb
@cb = cb
end
def call_callback x
@cb.call(x)
end
end
""")
obj = rb.**Obj.new()

def callback(x):
return x+1

callback_rb = RbCallback(callback)
obj.save_callback(callback_rb)
print obj.call_callback(5)
已邀请:

要回复问题请先登录注册