Contenu connexe
Plus de Yuichiro MASUI (14)
How to build 1 hour mashup site
- 82. require 'net/http'
require 'cgi'
require 'rexml/document'
class Onsen
attr_accessor :address, :name, :id
KEY = 'phe11375af71ba'
URL = 'http://jws.jalan.net/APICommon/OnsenSearch/V1/?'
def self.find(params)
results = []
get(params).elements.each('Results/Onsen') do |el|
results << Onsen.new(el.elements["OnsenID"].text, el.elements["OnsenName"].text, el.elements
["OnsenAddress"].text)
end
results
end
def self.url(params)
params[:key] = KEY
URI.parse(URL+((params.map { |key,value| "#{key}=#{CGI::escape(value.to_s)}"}).join('&')))
end
def self.get(params)
REXML::Document.new(Net::HTTP.get(url(params)))
end
def initialize(id, name, address)
@id, @name, @address = id, name, address
end
end
- 87. irb> puts Onsen.find(:count => 10, :s_area =>
'010802').map{|o| o.name}.join(',')
=>いわない温泉,雷電温泉,朝日温泉,ニセコワイス高原温泉 (ニセ
コ),ワイス温泉 (ニセコ),ひらふ温泉 (ニセコ),ニセコアンヌプリ
温泉 (ニセコ),ニセコ昆布温泉 (ニセコ),ニセコ薬師温泉...
- 93. $ rails onsen -d sqlite3
$ cd onsen
$ script/plugin install
svn://rubyforge.org/var/svn/ym4r/Plugins/GM/trunk/ym4r_gm
$ ./script/generate controller onsen index
- 95. class OnsenController < ApplicationController
def index
@map = GMap.new("map_div")
@map.control_init :large_map => true, :map_type => true
@map.center_zoom_init([42.808783,140.684566], 11)
end
end
- 107. irb> niseko = Geocoding.get(‘ニセコ駅’)
irb> niseko.first.latlon
=> [40.34575, -3.816734]
- 112. class OnsenController < ApplicationController
def index
@map = GMap.new("map_div")
@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([42.808783,140.684566], 11)
Onsen.find(:count => 10, :s_area => '010802').each do |o|
marker = GMarker.new(
o.latlon, :title => o.name,
:info_window => render_to_string(:partial => 'point', :locals
=> { :onsen => o }))
@map.overlay_init(marker)
end
end
end
- 123. $ cd lib
$ wget http://redgreenblu.com/flickr/flickr.rb
$ vi flickr.rb # 57行目のAPIKEYを変更
$ cd ..
- 125. irb> flickr = Flickr.new
irb> photo = flickr.photos(:text => ‘ニセコ五色温泉’).first
irb> photo.source('Thumbnail')
=>http://farm1.static.flickr.com/136/328193836_725a658789_t.jpg