dagjeweg 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1886e6023a84dfc6a33cf9443bc27b31371478f3
4
+ data.tar.gz: fae38479a20d045689dfe443bd032c024177eae7
5
+ SHA512:
6
+ metadata.gz: 6f16c8e215799861f7c510ad51abe11ca453be42f79dfab2f0715228c599b2a3e1413adbbcf087499de6ae6fe7de61dba89e3ee2565bb028275061012a6ad352
7
+ data.tar.gz: fb1c25667e1a82401e1ea2fb4861044e355cac011954406e8f40cf39add0acfc7f21e66405eb7f36be024d5d670d1ce3e164ed56c91dce313ca33525bee04470
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .DS_Store
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ lib/bundler/man
12
+ pkg
13
+ doc
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ spec/vcr_cassettes
20
+ test-credentials.yaml
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ script: bundle exec rake --trace
3
+ rvm:
4
+ - '2.0'
5
+ env:
6
+ global:
7
+ secure: eycyuXZV5Yj730phRf+ZTL2qGCpyvDMhLoUj/e4r1/LRw/oDJHu/5tOcEou8K891A7rPDK/vYVNhiqiqQ5qCoG3jVCo9DwYs3a2dNsN0ZwjGfxWXH8j0hzKSmmHpygUrM5JsEZs4lbVMg7RZbrsAgLQ4t5p4ZwhYmvruzDOMoBxp+YZvZWY07OF3d2xkRqsLnbxxoaUAEnQbii0Ar+0xz4+++knh+7bzAG2Ms4okNyTCiW1Oter5qSIWg3HOouEu8HuYRp2pLW9AVTQaRLH8/rjceLHU6YvoUAL4kmpvhFc8aKrkaoZZVrSNX5y69RBRv/PZ5FYHEXTe+iTKhs5uiCEF+LqtksjR4510rKRmEsc1xrur49IXQMMtOhmEr7w/GiR7TMupn4dc9jR+CTYdVruGHqvUYUaKtcDbZe+WzAqJaX4W7IAeJPmTmEPvkp0HVzmBaUlv0lx3AocTmQGClBfM0nfFA0NqHciLy3Sb8gp/r2UUcwR7p2vVwNc87hJoq51txFJTHFhSrg+XHF/g757SDDx5oGFgL5l9tuKFTCFy1hs5vbzoniOMGoyHLZLTjMucRQGp0Y8gc3Scb70E+dABvu2yQfFpvgiJFmHwGaSmicaE2vucxBx6ySxTtO1ZQPkptzB8PAHTDKm/uZ+DqtESHdecuQkHswEI0fsT/54=
data/.yardopts ADDED
@@ -0,0 +1,2 @@
1
+ --markup-provider=redcarpet
2
+ --markup=markdown
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in dagjeweg.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Henk Meijer
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # Dagjeweg
2
+ [![Build Status](https://secure.travis-ci.org/henkm/dagjeweg.png)](http://travis-ci.org/henkm/dagjeweg)
3
+ [![Gem Version](https://badge.fury.io/rb/dagjeweg.svg)](http://badge.fury.io/rb/dagjeweg)
4
+ [![Dependency Status](https://gemnasium.com/henkm/dagjeweg.svg)](https://gemnasium.com/henkm/dagjeweg)
5
+ [![Code Climate](https://codeclimate.com/github/henkm/dagjeweg/badges/gpa.svg)](https://codeclimate.com/github/henkm/dagjeweg)
6
+
7
+ Met deze gem kun je eenvoudig data opvragen via de DagjeWeg.NL API. *Let op:* het is een _read only_ API, dus het is niet mogelijk om data aan te passen.
8
+
9
+ ## Installatie
10
+
11
+ Voeg deze regel toe aan je Gemfile:
12
+
13
+ gem 'dagjeweg'
14
+
15
+ En voer uit:
16
+
17
+ $ bundle
18
+
19
+ Of installeer het zelf:
20
+
21
+ $ gem install dagjeweg
22
+
23
+ ## Gebruik
24
+
25
+ Mogelijkheden:
26
+ - Tip zoeken op naam
27
+ - Alle tips voor een plaatsnaam opvragen
28
+ - Tips in een straal van x kilometer van een andere tip opvragen
29
+ - Lijst met genres opvragen
30
+ - Lijst met rubrieken opvragen
31
+ - Lijst met tips per genre of rubriek
32
+ - Recencies bij een tip opvragen
33
+
34
+ ## Informatie
35
+
36
+ De volgende velden kunnen worden opgevraagd van iedere tip:
37
+
38
+ |Naam|Type|Omschrijving|
39
+ |----|----|-------------|
40
+ |id|Integer|DagjeWeg.NL ID, correspondeert met URL op www.dagjeweg.nl|
41
+ |name|String|Naam van het uitstapje|
42
+ |google_name|String|SEO geoptimaliseerde naam|
43
+ |description|Text|Korte omschrijving|
44
+ |long_description|Text|Langere omschrijving (soms met HTML)|
45
+ |genre|String|Genre|
46
+ |address|String|Adres|
47
+ |city|String|Plaatsnaam|
48
+ |email|String|E-mail adres|
49
+ |phone|String|Telefoonnummer|
50
+ |url|String|URL van het uitstapje|
51
+ |dwurl|String|URL van het uitstapje op DagjeWeg.NL|
52
+ |longitude|Float|Longitude coordinaat|
53
+ |latitude|Float|Latitude coordinaat|
54
+ |period|String|Geopend in periode (hele jaar, zomer,etc.)|
55
+ |ma, di, wo, do, vr, za, zo|Boolean|Open op deze dagen|
56
+ |from_time|String|Open vanaf (bijv. "10:00")|
57
+ |until_time|String|Open tot|
58
+ |open_comment|Text|Opmerking over openingstijden|
59
+ |price|Integer|Reguliere prijs in centen|
60
+ |price_kids|Integer|Kinderprijs in centen|
61
+ |price_toddlers|Integer|Baby/Peuterprijs in centen|
62
+ |price_seniors|Integer|Seniorenprijs in centen|
63
+ |show_price|String|Alle prijzen in HTML formaat|
64
+ |accessible|Boolean|Toengankelijk voor mindervaliden|
65
+ |accessible_comment|Text|Opmerkingen over toengankelijkheid|
66
+ |wheelchair|Boolean|Rolstoelvoorzieningen|
67
+ |wheelchair_toilet|Boolean|Invalidentoilet|
68
+ |number_of_reviews|Integer|Aantal beoordelingen|
69
+ |show_image|String|URL naar afbeelding (voorkeur)|
70
+ |image|String|evt. URL naar afbeelding|
71
+ |image2 .. image13|String|evt. URL naar afbeelding|
72
+ |distance|Decimal|Afstand naar dit uitstapje (alleen bij #near en #nearby)|
73
+
74
+
75
+ ## Voorbeelden
76
+
77
+ ```ruby
78
+ # Zoek 20 uitstapjes in de buurt van Amsterdam centrum
79
+ @tips = Dagjeweg::Tip.near(52.3702160, 4.8951680, 20)
80
+
81
+ # Zoek uitstapjes in een straal van 5km van een ander uitstapje
82
+ @tips.first.nearby(5)
83
+
84
+ # Vraag reviews van een uitstapje op
85
+ @reviews = DagjeWeg::Tip.find(22).reviews
86
+ ```
87
+
88
+ ## API Key
89
+
90
+ Voor het gebruik van deze gem heb je een API Key nodig van DagjeWeg.NL. Een API Key kun je aanvragen door een verzoek te sturen naar redactie@dagjeweg.nl.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new do |t|
5
+ t.pattern = "spec/*_spec.rb"
6
+ end
7
+
8
+ task :default => :spec
9
+ task :test => :spec
data/dagjeweg.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'dagjeweg/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "dagjeweg"
8
+ spec.version = Dagjeweg::VERSION
9
+ spec.authors = ["Henk Meijer"]
10
+ spec.email = ["meijerhenk@gmail.com"]
11
+ spec.description = %q{Communiceer met de API van DagjeWeg.NL en haal informatie op over dagjes weg}
12
+ spec.summary = %q{Communiceer met de API van DagjeWeg.NL en haal informatie op over dagjes weg}
13
+ spec.homepage = "http://www.dagjeweg.nl"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "rake"
22
+ spec.add_development_dependency "rspec"
23
+ spec.add_development_dependency "vcr"
24
+ spec.add_development_dependency "fakeweb"
25
+ spec.add_development_dependency "coveralls"
26
+ spec.add_development_dependency "simplecov"
27
+ spec.add_development_dependency "yard"
28
+ spec.add_development_dependency "redcarpet", "~> 1" # for documentation
29
+ spec.add_development_dependency "github-markup"
30
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # Configuration object for storing some parameters required for making transactions
3
+ #
4
+ module Dagjeweg::Config
5
+ class << self
6
+ # @return [String] Your Dagjeweg API Key
7
+ # @note The is a required parameter.
8
+ attr_accessor :api_key
9
+
10
+
11
+ # Set's the default value's to nil and false
12
+ # @return [Hash] configuration options
13
+ def init!
14
+ @defaults = {
15
+ :@api_key => nil,
16
+ }
17
+ end
18
+
19
+ # Resets the value's to there previous value (instance_variable)
20
+ # @return [Hash] configuration options
21
+ def reset!
22
+ @defaults.each { |key, value| instance_variable_set(key, value) }
23
+ end
24
+
25
+ # Set's the new value's as instance variables
26
+ # @return [Hash] configuration options
27
+ def update!
28
+ @defaults.each do |key, value|
29
+ instance_variable_set(key, value) unless instance_variable_defined?(key)
30
+ end
31
+ end
32
+ end
33
+ init!
34
+ reset!
35
+ end
@@ -0,0 +1,8 @@
1
+ class DagjewegError < StandardError
2
+ attr_reader :object
3
+
4
+
5
+ def initialize(object)
6
+ @object = object
7
+ end
8
+ end
@@ -0,0 +1,13 @@
1
+ module DagjeWeg
2
+ #
3
+ # Simpel extend on the +Rails::Engine+ to add support for a new config section within
4
+ # the environment configs
5
+ #
6
+ # @example default
7
+ # # /config/environments/development.rb
8
+ # config.dagjeweg.api_key = "12343465sdfgsadr324"
9
+ #
10
+ class Engine < Rails::Engine
11
+ config.dagjeweg = Docdata::Config
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ module Dagjeweg
2
+
3
+ class Review
4
+ attr_accessor :tip_id,:title, :reviewer, :body, :duration, :rating, :review_date, :visit_date
5
+
6
+ #
7
+ # Initializer to transform a +Hash+ into an Review object
8
+ #
9
+ # @param [Hash] args
10
+ def initialize(args=nil)
11
+ return if args.nil?
12
+ args.each do |k,v|
13
+ instance_variable_set("@#{k}", v) unless v.nil?
14
+ end
15
+ end
16
+
17
+
18
+ private
19
+
20
+ end
21
+ end
@@ -0,0 +1,141 @@
1
+ module Dagjeweg
2
+
3
+ class Tip
4
+ attr_accessor :dw_id, :name, :google_name, :show_name, :show_price, :address, :email, :city, :dw_id, :latitude, :longitude, :image, :show_image, :long_description, :url, :phone, :email, :image2, :image3, :image4, :image5, :image6, :image8, :image9, :image10, :image11, :image12, :image13, :dwurl, :ma, :di, :wo, :do, :vr, :za, :zo, :from_time, :until_time, :open_comment, :price, :price_kids, :price_seniors, :price_toddlers, :price_comment, :description, :show_reviews, :wheelchair, :wheelchair_toilet, :accessible, :accessible_comment, :periode, :weer, :rounded_cijfer, :number_of_reviews, :activities, :genre, :distance
5
+
6
+
7
+ #
8
+ # Initializer to transform a +Hash+ into an Tip object
9
+ #
10
+ # @param [Hash] args
11
+ def initialize(args=nil)
12
+ return if args.nil?
13
+ args.each do |k,v|
14
+ instance_variable_set("@#{k}", v) unless v.nil?
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 == ''
21
+ end
22
+
23
+ # returns a list of tips for given query
24
+ def self.search(query="", per_page=50, page=1)
25
+ @search_tips ||= []
26
+ unless @search_tips.any?
27
+ uri = Dagjeweg::Tip.api_url("search.json?q=#{query}&per_page=#{per_page}&page=#{page}")
28
+ json = Dagjeweg::Tip.get_json(uri)
29
+ for object in json
30
+ @search_tips << Dagjeweg::Tip.new(object)
31
+ end
32
+ return @search_tips
33
+ end
34
+ end
35
+
36
+ def self.find(dw_id="")
37
+ uri = Dagjeweg::Tip.api_url("tips.json?id=#{dw_id.to_s}")
38
+ json = Dagjeweg::Tip.get_json(uri)
39
+ if json && json.any?
40
+ tip = new(json.first)
41
+ return tip
42
+ else
43
+ raise DagjewegError.new("Tip met deze ID werd niet gevonden.")
44
+ end
45
+ end
46
+
47
+ # return a list of tips near location. Takes 3 params:
48
+ # - lat
49
+ # - lon
50
+ # - number of tips
51
+ def self.near(lat, lon, per_page)
52
+ uri = Dagjeweg::Tip.api_url("tips.json?lat=#{lat}&lon=#{lon}&per_page=#{per_page}")
53
+ 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
63
+ end
64
+
65
+ # returns a list of tips in the range of x kilometers of this instance
66
+ def nearby(range=10)
67
+ uri = Dagjeweg::Tip.api_url("nearby.json?id=#{id.to_s}")
68
+ 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
78
+ end
79
+
80
+ # returns a list of review objects
81
+ def reviews
82
+ @reviews ||= []
83
+ unless @reviews.any?
84
+ for object in show_reviews
85
+ @reviews << Dagjeweg::Review.new(
86
+ tip_id: id,
87
+ reviewer: object["reviewer"],
88
+ title: object["title"],
89
+ body: object["body"],
90
+ duration: object["duration"],
91
+ rating: object["cijfer"].to_i,
92
+ review_date: object["review_date"],
93
+ visit_date: object["visit_date"]
94
+ )
95
+ end
96
+ end
97
+ return @reviews
98
+ end
99
+
100
+ # returns the DagjeWeg ID
101
+ def id
102
+ dw_id
103
+ end
104
+
105
+ def weather
106
+ weer
107
+ end
108
+
109
+ def period
110
+ periode
111
+ end
112
+
113
+
114
+ private
115
+
116
+ def self.get_json(uri)
117
+ 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
123
+ raise DagjewegError.new(self), "Tip met deze ID werd niet gevonden. (#{resp.code})"
124
+ elsif resp.code.to_i == 403
125
+ raise DagjewegError.new(self), "Ongeldige API Key (#{resp.code})"
126
+ else
127
+ puts resp
128
+ raise DagjewegError.new(self), "Onbekende fout (#{resp.code})"
129
+ end
130
+ end
131
+
132
+ def self.api_url(ext='')
133
+ self.base_url + ext
134
+ end
135
+
136
+ def self.base_url
137
+ "http://m.dagjeweg.nl/api/#{Config.api_key}/"
138
+ end
139
+
140
+ end
141
+ end
@@ -0,0 +1,3 @@
1
+ module Dagjeweg
2
+ VERSION = "0.0.2"
3
+ end
data/lib/dagjeweg.rb ADDED
@@ -0,0 +1,41 @@
1
+ require "dagjeweg/version"
2
+
3
+ # Libraries
4
+ require 'open-uri'
5
+ require 'net/http'
6
+ require 'json'
7
+
8
+ # Files
9
+ require "dagjeweg/version"
10
+ require "dagjeweg/config"
11
+ require "dagjeweg/engine" if defined?(Rails) && Rails::VERSION::MAJOR.to_i >= 3
12
+ require "dagjeweg/tip"
13
+ require "dagjeweg/review"
14
+ require "dagjeweg/dagjeweg_error"
15
+
16
+ #
17
+ # Dagjeweg Module
18
+ #
19
+ module Dagjeweg
20
+ API_VERSION = 1
21
+
22
+
23
+ # returns the version number
24
+ def self.version
25
+ VERSION
26
+ end
27
+
28
+ # sets up configuration
29
+ def self.setup
30
+ yield self
31
+ end
32
+
33
+
34
+ # For testing purpose only: set the username and password
35
+ # in environment variables to make the tests pass with your test
36
+ # credentials.
37
+ def self.set_credentials_from_environment
38
+ Config.api_key = ENV["DW_API_KEY"]
39
+ end
40
+
41
+ end
@@ -0,0 +1,37 @@
1
+ require "bundler"
2
+ Bundler.setup(:default, :development)
3
+
4
+ require 'simplecov'
5
+ require 'coveralls'
6
+
7
+ Coveralls.wear!
8
+ # SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
9
+ # SimpleCov::Formatter::HTMLFormatter,
10
+ # Coveralls::SimpleCov::Formatter
11
+ # ]
12
+ # SimpleCov.start
13
+
14
+ require 'rubygems'
15
+ require 'bundler/setup'
16
+ require 'vcr'
17
+ require 'cgi'
18
+ require 'dagjeweg'
19
+
20
+ VCR.configure do |c|
21
+ c.cassette_library_dir = 'spec/vcr_cassettes'
22
+ c.hook_into :fakeweb
23
+ c.register_request_matcher :ignore_query_param_ordering do |r1, r2|
24
+ uri1 = URI(r1.uri)
25
+ uri2 = URI(r2.uri)
26
+
27
+ uri1.scheme == uri2.scheme &&
28
+ uri1.host == uri2.host &&
29
+ uri1.path == uri2.path &&
30
+ CGI.parse(uri1.query) == CGI.parse(uri2.query)
31
+ end
32
+ end
33
+
34
+ RSpec.configure do |config|
35
+ config.order = "random"
36
+ # config.filter_run :focus => true
37
+ end
data/spec/tip_spec.rb ADDED
@@ -0,0 +1,108 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dagjeweg::Tip do
4
+ before(:each) do
5
+
6
+ end
7
+
8
+ describe "invalid credentials" do
9
+
10
+ it "raises error when credentials are wrong" do
11
+ Dagjeweg::Config.api_key = "1234"
12
+ VCR.use_cassette("request-tips-without-credentials") do
13
+ expect { Dagjeweg::Tip.find(52) }.to raise_error(DagjewegError, "Ongeldige API Key (403)")
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ describe "valid credentials" do
20
+
21
+ before(:all) do
22
+ Dagjeweg.set_credentials_from_environment
23
+ end
24
+
25
+ describe "#find" do
26
+ it "returns a tip object with ID of given id when credentials are correct" do
27
+ VCR.use_cassette("request-tips-with-credentials") do
28
+ tip = Dagjeweg::Tip.find(52)
29
+ expect(tip).to be_kind_of(Dagjeweg::Tip)
30
+ expect(tip.id).to eq(52)
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "#search" do
36
+
37
+ before(:all) do
38
+ # VCR.use_cassette("request-reviews") do
39
+ # @tip = Dagjeweg::Tip.find(22)
40
+ # @review = @tip.reviews.first
41
+ # end
42
+ end
43
+
44
+ it "returns relevant tips for query" do
45
+ VCR.use_cassette("request-query") do
46
+ tips = Dagjeweg::Tip.search("dolfinarium")
47
+ expect(tips.count).to be > 0
48
+ expect(tips.first.id).to eq(22) #DagjeWeg ID van dolfinarium
49
+ end
50
+ end
51
+
52
+ end
53
+
54
+ describe "#nearby" do
55
+ before(:all) do
56
+ VCR.use_cassette("request-tips-with-credentials") do
57
+ @tip = Dagjeweg::Tip.find(52)
58
+ end
59
+ end
60
+
61
+ it "returns a list of nearby tips" do
62
+ VCR.use_cassette("request-nearby-tips") do
63
+ nearby_tips = @tip.nearby(10)
64
+ expect(nearby_tips.count).to be > 20
65
+ expect(nearby_tips.first).to be_kind_of(Dagjeweg::Tip)
66
+ end
67
+ end
68
+
69
+ it "has a distance attribute" do
70
+ VCR.use_cassette("request-nearby-tips") do
71
+ nearby_tips = @tip.nearby(10)
72
+ expect(nearby_tips[5].distance).to be_between(0.0, 10.0)
73
+ end
74
+
75
+ end
76
+ end
77
+
78
+ describe "#near" do
79
+ it "returns a list of tips near a geolocation" do
80
+ VCR.use_cassette("request-tips-near") do
81
+ nearby_tips = Dagjeweg::Tip.near(52.3702160, 4.8951680, 20)
82
+ expect(nearby_tips.count).to be 20
83
+ expect(nearby_tips.first).to be_kind_of(Dagjeweg::Tip)
84
+ end
85
+ end
86
+ end
87
+
88
+ describe "#reviews" do
89
+
90
+ before(:all) do
91
+ VCR.use_cassette("request-reviews") do
92
+ @tip = Dagjeweg::Tip.find(22)
93
+ @review = @tip.reviews.first
94
+ end
95
+ end
96
+
97
+ it "returns a list of reviews for a tip" do
98
+ puts @tip.inspect
99
+ expect(@tip.reviews.count).to be > 20
100
+ end
101
+
102
+ it "has a reviewers name" do
103
+ expect(@review.reviewer).to include("Beoordeling gegeven door")
104
+ end
105
+
106
+ end
107
+ end
108
+ end
metadata ADDED
@@ -0,0 +1,192 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dagjeweg
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Henk Meijer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: vcr
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: fakeweb
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: redcarpet
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: github-markup
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: Communiceer met de API van DagjeWeg.NL en haal informatie op over dagjes
140
+ weg
141
+ email:
142
+ - meijerhenk@gmail.com
143
+ executables: []
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - .gitignore
148
+ - .travis.yml
149
+ - .yardopts
150
+ - Gemfile
151
+ - LICENSE.txt
152
+ - README.md
153
+ - Rakefile
154
+ - dagjeweg.gemspec
155
+ - lib/dagjeweg.rb
156
+ - lib/dagjeweg/config.rb
157
+ - lib/dagjeweg/dagjeweg_error.rb
158
+ - lib/dagjeweg/engine.rb
159
+ - lib/dagjeweg/review.rb
160
+ - lib/dagjeweg/tip.rb
161
+ - lib/dagjeweg/version.rb
162
+ - spec/spec_helper.rb
163
+ - spec/tip_spec.rb
164
+ homepage: http://www.dagjeweg.nl
165
+ licenses:
166
+ - MIT
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.3.0
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: Communiceer met de API van DagjeWeg.NL en haal informatie op over dagjes
188
+ weg
189
+ test_files:
190
+ - spec/spec_helper.rb
191
+ - spec/tip_spec.rb
192
+ has_rdoc: