注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

liangxh2008的博客

 
 
 

日志

 
 

Ruby protobuf  

2010-04-14 23:26:27|  分类: AppMarket |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Ruby的protobuf库
http://code.google.com/p/ruby-protobuf/
安装:
Ruby代码 复制代码
  1. gem install ruby_protobuf  
gem install ruby_protobuf  

生成ruby的stub:
Ruby代码 复制代码
  1. rprotoc addressbook.proto  
rprotoc addressbook.proto  

从文件读数据:
Ruby代码 复制代码
  1. # read.rb   
  2. require 'addressbook.pb.rb'  
  3.   
  4. def list_people(address_book)   
  5.   address_book.person.each do | p |   
  6.     p "Person ID: #{p.id}"  
  7.     p "Name: #{p.name}"  
  8.     p "E-mail: #{p.email}" unless p.email.empty?   
  9.     p.phone.each do |phone|   
  10.       case phone.type   
  11.       when Tutorial::Person::PhoneType::MOBILE   
  12.         print "Mobile phone #: "  
  13.       when Tutorial::Person::PhoneType::HOME   
  14.         print "Home phone #: "  
  15.       when Tutorial::Person::PhoneType::WORK   
  16.         print "Work phone #: "  
  17.       end  
  18.       p phone.number   
  19.     end  
  20.   end  
  21. end  
  22.   
  23. address_book = Tutorial::AddressBook.new  
  24. address_book.parse_from_file ARGV[0]   
  25.   
  26. list_people address_book  
# read.rb  require 'addressbook.pb.rb'    def list_people(address_book)    address_book.person.each do | p |      p "Person ID: #{p.id}"      p "Name: #{p.name}"      p "E-mail: #{p.email}" unless p.email.empty?      p.phone.each do |phone|        case phone.type        when Tutorial::Person::PhoneType::MOBILE          print "Mobile phone #: "        when Tutorial::Person::PhoneType::HOME          print "Home phone #: "        when Tutorial::Person::PhoneType::WORK          print "Work phone #: "        end        p phone.number      end    end  end    address_book = Tutorial::AddressBook.new  address_book.parse_from_file ARGV[0]    list_people address_book  

运行:
Ruby代码 复制代码
  1. ruby read.rb 'D:\cpp-projects\pb\bin\Release\ADDRESS_BOOK_FILE'  
  2.   
  3. // 输出   
  4. "Person ID: 123"  
  5. "Name: Hideto"  
  6. "E-mail: hideto.bj@gmail.com"  
  7. Mobile phone #: "159xxxxxxxx"   
  8. "Person ID: 456"  
  9. "Name: chuang"  
  10. "E-mail: chuang@freewheel.tv"  
  11. Home phone #: "22222222"   
  12. "Person ID: 1231231"  
  13. "Name: asdfadsf"  
  14. "E-mail: fadsfdsf@dasfads.com"  
  15. Mobile phone #: "12321321321"   
  16. Home phone #: "123432432"  
  评论这张
 
阅读(688)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017