2010-12-11 3 views
1

Мне было интересно, как отобразить диаграмму, сделанную с gchartrb в рубине. Я попытался сделать это, просто потребовав изображение из указанного URL-адреса, но это дает ошибку «Bad URI». как мне это сделать? благодаряКак отобразить googlechart в ruby?

require 'rubygems' 
require 'google_chart' 





# Pie Chart 
GoogleChart::PieChart.new('320x200', "Pie Chart",false) do |pc| 
    pc.data "Apples", 40 
    pc.data "Banana", 20 
    pc.data "Peach", 30 
    pc.data "darn", 600 

    $chart = pc.to_url 

end 

require 'fox16' 

include Fox 

class Image_Viewer <FXMainWindow 
    def initialize(app) 
    super(app, "Image Viewer", :opts => DECOR_ALL, :width => 500, :height => 450) 
    require 'open-uri' 
    @pic = Kernel.open($chart, "rb") 
    @pic2 = FXPNGImage.new(app, @pic.read) 
    FXImageFrame.new(self, @pic2) 

end 
    def create 
    super 
    self.show(PLACEMENT_SCREEN) 
end 

end 


app = FXApp.new 
mainwin = Image_Viewer.new(app) 

app.create 
app.run 
+0

нет необходимости в глобальной переменной $ chart, pc = GoogleChart :: PieChart {..}; pc.to_url – tokland

ответ

0

Казалось бы, что URI::parse не нравится URL Google генерировать (вероятно, из-за использования |). Поэтому кодируйте его перед использованием:

@pic = Kernel.open(URI::encode($chart)) 
+0

Огромное спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^