class Dagjeweg::Tip
Attributes
accessible[RW]
accessible_comment[RW]
activities[RW]
address[RW]
bevrijdingsdag[RW]
city[RW]
description[RW]
di[RW]
distance[RW]
do[RW]
dw_id[RW]
dwurl[RW]
eerste_kerstdag[RW]
eerste_paasdag[RW]
eerste_pinksterdag[RW]
email[RW]
from_time[RW]
genre[RW]
goede_vrijdag[RW]
google_name[RW]
hemelvaartsdag[RW]
image[RW]
image10[RW]
image11[RW]
image12[RW]
image13[RW]
image2[RW]
image3[RW]
image4[RW]
image5[RW]
image6[RW]
image8[RW]
image9[RW]
koningsdag[RW]
latitude[RW]
long_description[RW]
longitude[RW]
ma[RW]
name[RW]
nieuwjaarsdag[RW]
number_of_reviews[RW]
open_comment[RW]
oudejaarsdag[RW]
periode[RW]
phone[RW]
postal_code[RW]
price[RW]
price_comment[RW]
price_kids[RW]
price_seniors[RW]
price_toddlers[RW]
rounded_cijfer[RW]
show_image[RW]
show_name[RW]
show_price[RW]
show_reviews[RW]
tweede_kerstdag[RW]
tweede_paasdag[RW]
tweede_pinksterdag[RW]
until_time[RW]
url[RW]
vr[RW]
weer[RW]
wheelchair[RW]
wheelchair_toilet[RW]
wo[RW]
za[RW]
zo[RW]
Public Class Methods
find(dw_id="")
click to toggle source
# File lib/dagjeweg/tip.rb, line 31 def self.find(dw_id="") uri = Dagjeweg::Tip.api_url("tips.json?id=#{dw_id.to_s}") json = Dagjeweg::Tip.get_json(uri) puts "JSON: #{json}" if json && json.any? tip = new(json.first) return tip else raise DagjewegError.new("Tip met deze ID werd niet gevonden.") end end
near(lat, lon, per_page)
click to toggle source
return a list of tips near location. Takes 3 params:
-
lat
-
lon
-
number of tips
# File lib/dagjeweg/tip.rb, line 47 def self.near(lat, lon, per_page) uri = Dagjeweg::Tip.api_url("tips.json?lat=#{lat}&lon=#{lon}&per_page=#{per_page}") json = Dagjeweg::Tip.get_json(uri) Dagjeweg::Tip.parse_json(json) end
new(args=nil)
click to toggle source
Initializer to transform a Hash
into an Tip
object
@param [Hash] args
# File lib/dagjeweg/tip.rb, line 9 def initialize(args=nil) return if args.nil? args.each do |k,v| instance_variable_set("@#{k}", v) unless v.nil? end typecast_attrs end
search(query="", per_page=50, page=1)
click to toggle source
returns a list of tips for given query
# File lib/dagjeweg/tip.rb, line 19 def self.search(query="", per_page=50, page=1) search_tips = [] unless search_tips.any? uri = Dagjeweg::Tip.api_url("search.json?q=#{URI.escape(query)}&per_page=#{per_page}&page=#{page}") json = Dagjeweg::Tip.get_json(uri) for object in json search_tips << Dagjeweg::Tip.new(object) end return search_tips end end
Private Class Methods
api_url(ext='')
click to toggle source
# File lib/dagjeweg/tip.rb, line 120 def self.api_url(ext='') self.base_url + ext end
base_url()
click to toggle source
# File lib/dagjeweg/tip.rb, line 124 def self.base_url "http://m.dagjeweg.nl/api/#{Config.api_key}/" end
get_json(uri)
click to toggle source
Get the JSON object and return proper errors in scenarios where response code != 200 OK
# File lib/dagjeweg/tip.rb, line 106 def self.get_json(uri) resp = Net::HTTP.get_response(URI.parse(uri)) case resp.code.to_i when 200 return JSON.parse(resp.body) when 404 raise DagjewegError.new(self), "Tip met deze ID werd niet gevonden. (#{resp.code})" when 403 raise DagjewegError.new(self), "Ongeldige API Key (#{resp.code})" else raise DagjewegError.new(self), "Onbekende fout (#{resp.code})" end end
parse_json(json)
click to toggle source
Transform the json object in an Array of Tip
instances
# File lib/dagjeweg/tip.rb, line 97 def self.parse_json(json) a = [] for object in json a << Dagjeweg::Tip.new(object) end return a end
Public Instance Methods
id()
click to toggle source
returns the DagjeWeg
ID
# File lib/dagjeweg/tip.rb, line 81 def id dw_id end
nearby(range=10)
click to toggle source
returns a list of tips in the range of x kilometers of this instance
# File lib/dagjeweg/tip.rb, line 54 def nearby(range=10) uri = Dagjeweg::Tip.api_url("nearby.json?id=#{id.to_s}") json = Dagjeweg::Tip.get_json(uri) Dagjeweg::Tip.parse_json(json) end
period()
click to toggle source
# File lib/dagjeweg/tip.rb, line 89 def period periode end
reviews()
click to toggle source
returns a list of review objects
# File lib/dagjeweg/tip.rb, line 61 def reviews reviews = [] unless reviews.any? for object in show_reviews reviews << Dagjeweg::Review.new( tip_id: id, reviewer: object["reviewer"], title: object["titel"], body: object["body"], duration: object["duur"], rating: object["cijfer"].to_i, review_date: object["review_date"], visit_date: object["visit_date"] ) end end return reviews end
weather()
click to toggle source
# File lib/dagjeweg/tip.rb, line 85 def weather weer end
Private Instance Methods
typecast_attrs()
click to toggle source
# File lib/dagjeweg/tip.rb, line 128 def typecast_attrs self.distance = distance.to_f unless distance == '' self.price = price.to_i unless price == '' self.price_kids = price_kids.to_i unless price_kids == '' self.price_toddlers = price_toddlers.to_i unless price_toddlers == '' self.price_seniors = price_seniors.to_i unless price_seniors == '' end