dagjeweg 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1886e6023a84dfc6a33cf9443bc27b31371478f3
4
- data.tar.gz: fae38479a20d045689dfe443bd032c024177eae7
3
+ metadata.gz: 007900558d35b96a46cd77cb23cb574312952c6e
4
+ data.tar.gz: edf7614d10a036f90ba0dc92cbbc67872be18e83
5
5
  SHA512:
6
- metadata.gz: 6f16c8e215799861f7c510ad51abe11ca453be42f79dfab2f0715228c599b2a3e1413adbbcf087499de6ae6fe7de61dba89e3ee2565bb028275061012a6ad352
7
- data.tar.gz: fb1c25667e1a82401e1ea2fb4861044e355cac011954406e8f40cf39add0acfc7f21e66405eb7f36be024d5d670d1ce3e164ed56c91dce313ca33525bee04470
6
+ metadata.gz: 2f8dc4aa290e1cace6153e6cd0095f0a4277f9145cdf4f28db86ab0a788cfe92037e313866276d1e7d8a3839f1f9f739e72edd4e460b731525da88d17b30d2bd
7
+ data.tar.gz: b286a44ae8e67c40bda9e8c7a01f49560e36b396db2f7db3deea051cc6d84c4de03f97fe8395393bec887efdfaa92810bd72f6c2da5bdd20b03ba8c6b463a0aa
data/README.md CHANGED
@@ -20,6 +20,14 @@ Of installeer het zelf:
20
20
 
21
21
  $ gem install dagjeweg
22
22
 
23
+ ## Configuratie in Rails applicatie
24
+ Pas de configuratie van de environment aan (development.rb, production.rb, etc.)
25
+
26
+ ```ruby
27
+ config.dagjeweg.api_key = "voerhierjouwmd5apikeyin"
28
+ ```
29
+
30
+
23
31
  ## Gebruik
24
32
 
25
33
  Mogelijkheden:
@@ -82,7 +90,7 @@ De volgende velden kunnen worden opgevraagd van iedere tip:
82
90
  @tips.first.nearby(5)
83
91
 
84
92
  # Vraag reviews van een uitstapje op
85
- @reviews = DagjeWeg::Tip.find(22).reviews
93
+ @reviews = Dagjeweg::Tip.find(22).reviews
86
94
  ```
87
95
 
88
96
  ## API Key
@@ -8,6 +8,6 @@ module DagjeWeg
8
8
  # config.dagjeweg.api_key = "12343465sdfgsadr324"
9
9
  #
10
10
  class Engine < Rails::Engine
11
- config.dagjeweg = Docdata::Config
11
+ config.dagjeweg = Dagjeweg::Config
12
12
  end
13
13
  end
data/lib/dagjeweg/tip.rb CHANGED
@@ -13,23 +13,20 @@ module Dagjeweg
13
13
  args.each do |k,v|
14
14
  instance_variable_set("@#{k}", v) unless v.nil?
15
15
  end
16
- self.distance = distance.to_f unless distance == ''
17
- self.price = price.to_i unless price == ''
18
- self.price_kids = price_kids.to_i unless price_kids == ''
19
- self.price_toddlers = price_toddlers.to_i unless price_toddlers == ''
20
- self.price_seniors = price_seniors.to_i unless price_seniors == ''
16
+ typecast_attrs
21
17
  end
22
18
 
19
+
23
20
  # returns a list of tips for given query
24
21
  def self.search(query="", per_page=50, page=1)
25
- @search_tips ||= []
26
- unless @search_tips.any?
22
+ search_tips = []
23
+ unless search_tips.any?
27
24
  uri = Dagjeweg::Tip.api_url("search.json?q=#{query}&per_page=#{per_page}&page=#{page}")
28
25
  json = Dagjeweg::Tip.get_json(uri)
29
26
  for object in json
30
- @search_tips << Dagjeweg::Tip.new(object)
27
+ search_tips << Dagjeweg::Tip.new(object)
31
28
  end
32
- return @search_tips
29
+ return search_tips
33
30
  end
34
31
  end
35
32
 
@@ -51,38 +48,22 @@ module Dagjeweg
51
48
  def self.near(lat, lon, per_page)
52
49
  uri = Dagjeweg::Tip.api_url("tips.json?lat=#{lat}&lon=#{lon}&per_page=#{per_page}")
53
50
  json = Dagjeweg::Tip.get_json(uri)
54
- if json && json.any?
55
- a = []
56
- for object in json
57
- a << Dagjeweg::Tip.new(json.first)
58
- end
59
- return a
60
- else
61
- raise DagjewegError.new("Tip met deze ID werd niet gevonden.")
62
- end
51
+ Dagjeweg::Tip.parse_json(json)
63
52
  end
64
53
 
65
54
  # returns a list of tips in the range of x kilometers of this instance
66
55
  def nearby(range=10)
67
56
  uri = Dagjeweg::Tip.api_url("nearby.json?id=#{id.to_s}")
68
57
  json = Dagjeweg::Tip.get_json(uri)
69
- if json && json.any?
70
- a = []
71
- for object in json
72
- a << Dagjeweg::Tip.new(json.first)
73
- end
74
- return a
75
- else
76
- raise DagjewegError.new("Tip met deze ID werd niet gevonden.")
77
- end
58
+ Dagjeweg::Tip.parse_json(json)
78
59
  end
79
60
 
80
61
  # returns a list of review objects
81
62
  def reviews
82
- @reviews ||= []
83
- unless @reviews.any?
63
+ reviews = []
64
+ unless reviews.any?
84
65
  for object in show_reviews
85
- @reviews << Dagjeweg::Review.new(
66
+ reviews << Dagjeweg::Review.new(
86
67
  tip_id: id,
87
68
  reviewer: object["reviewer"],
88
69
  title: object["title"],
@@ -94,7 +75,7 @@ module Dagjeweg
94
75
  )
95
76
  end
96
77
  end
97
- return @reviews
78
+ return reviews
98
79
  end
99
80
 
100
81
  # returns the DagjeWeg ID
@@ -113,18 +94,26 @@ module Dagjeweg
113
94
 
114
95
  private
115
96
 
97
+ # Transform the json object in an Array of Tip instances
98
+ def self.parse_json(json)
99
+ a = []
100
+ for object in json
101
+ a << Dagjeweg::Tip.new(json.first)
102
+ end
103
+ return a
104
+ end
105
+
106
+ # Get the JSON object and return proper errors in scenarios where response code != 200 OK
116
107
  def self.get_json(uri)
117
108
  resp = Net::HTTP.get_response(URI.parse(uri))
118
- if resp.code.to_i == 200
119
- buffer = resp.body
120
- result = JSON.parse(buffer)
121
- return result
122
- elsif resp.code.to_i == 404
109
+ case resp.code.to_i
110
+ when 200
111
+ return JSON.parse(resp.body)
112
+ when 404
123
113
  raise DagjewegError.new(self), "Tip met deze ID werd niet gevonden. (#{resp.code})"
124
- elsif resp.code.to_i == 403
114
+ when 403
125
115
  raise DagjewegError.new(self), "Ongeldige API Key (#{resp.code})"
126
116
  else
127
- puts resp
128
117
  raise DagjewegError.new(self), "Onbekende fout (#{resp.code})"
129
118
  end
130
119
  end
@@ -137,5 +126,13 @@ module Dagjeweg
137
126
  "http://m.dagjeweg.nl/api/#{Config.api_key}/"
138
127
  end
139
128
 
129
+ def typecast_attrs
130
+ self.distance = distance.to_f unless distance == ''
131
+ self.price = price.to_i unless price == ''
132
+ self.price_kids = price_kids.to_i unless price_kids == ''
133
+ self.price_toddlers = price_toddlers.to_i unless price_toddlers == ''
134
+ self.price_seniors = price_seniors.to_i unless price_seniors == ''
135
+ end
136
+
140
137
  end
141
138
  end
@@ -1,3 +1,3 @@
1
1
  module Dagjeweg
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/tip_spec.rb CHANGED
@@ -95,7 +95,6 @@ describe Dagjeweg::Tip do
95
95
  end
96
96
 
97
97
  it "returns a list of reviews for a tip" do
98
- puts @tip.inspect
99
98
  expect(@tip.reviews.count).to be > 20
100
99
  end
101
100
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dagjeweg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henk Meijer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-16 00:00:00.000000000 Z
11
+ date: 2015-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake