yipit_n4l 0.0.2
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.
- data/.gitignore +9 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.md +58 -0
- data/Rakefile +2 -0
- data/lib/core_ext/array.rb +5 -0
- data/lib/yipit.rb +91 -0
- data/lib/yipit/version.rb +3 -0
- data/spec/businesses/businesses_spec.rb +25 -0
- data/spec/client/client_spec.rb +24 -0
- data/spec/deals/deals_spec.rb +106 -0
- data/spec/divisions/divisions_spec.rb +44 -0
- data/spec/sources/sources_spec.rb +44 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/tags/tags_spec.rb +36 -0
- data/yipit.gemspec +33 -0
- metadata +268 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.9.3
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Yipit
|
2
|
+
|
3
|
+
Simple Ruby wrapper for the Yipit [API](http://yipit.com/about/api_overview/). [Yipit](http://yipit.com) features deals aggregated from a number of sources, includng Groupon, LivingSocial, Restaurants.com, and more.
|
4
|
+
|
5
|
+
## Under development
|
6
|
+
|
7
|
+
This fork of the Yipit Gem now works, but unless you are part of the secret sauce, you have **BEEN WARNED**.
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
With `gem install`:
|
12
|
+
|
13
|
+
gem install yipit_n4l
|
14
|
+
|
15
|
+
Or with bundler:
|
16
|
+
|
17
|
+
gem yipit_n4l, require: 'yipit'
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
You'll need a Yipit [API key](http://yipit.com/account/login/?next=/about/api_key/).
|
22
|
+
|
23
|
+
### Instantiate
|
24
|
+
require 'Yipit'
|
25
|
+
client = Yipit::Client.new(YOUR_API_KEY)
|
26
|
+
|
27
|
+
Yipit uses a [`Hashie::Mash`](https://github.com/intridea/hashie) for return values, providing a handy hash that supports dot notation:
|
28
|
+
|
29
|
+
deal.title
|
30
|
+
=> "$100 Gift Certificate, Your Price $40"
|
31
|
+
deal.division.name
|
32
|
+
=> "New York"
|
33
|
+
|
34
|
+
### Issues
|
35
|
+
GitHub issue tracking sucks. Submit issues to [`Lighthouse`](https://yipit.lighthouseapp.com)
|
36
|
+
|
37
|
+
<a name="changelog"></a>
|
38
|
+
## Changelog
|
39
|
+
|
40
|
+
### 0.0.1 - March 14, 2011
|
41
|
+
|
42
|
+
* Initial version
|
43
|
+
|
44
|
+
## Under the hood
|
45
|
+
* [`Faraday`](https://github.com/technoweenie/faraday) REST client
|
46
|
+
* [`Hashie::Mash`](http://github.com/intridea/hashie) Magic
|
47
|
+
|
48
|
+
## How to contribute
|
49
|
+
|
50
|
+
* Fork the project.
|
51
|
+
* Make your feature addition or bug fix.
|
52
|
+
* Add tests for it. This is important so I don't break it in a
|
53
|
+
future version unintentionally.
|
54
|
+
* Commit, do not mess with rakefile, version, or history.
|
55
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
56
|
+
* Send me a pull request. Bonus points for topic branches.
|
57
|
+
|
58
|
+
Copyright (c) 2012 [Nest4Less, Inc.](http://nest4less.com).
|
data/Rakefile
ADDED
data/lib/yipit.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
3
|
+
require 'core_ext/array'
|
4
|
+
require 'hashie'
|
5
|
+
|
6
|
+
module Yipit
|
7
|
+
class Client
|
8
|
+
attr_reader :api_key, :conn
|
9
|
+
|
10
|
+
# Initialize the client.
|
11
|
+
# TODO: Document.
|
12
|
+
def initialize(*args)
|
13
|
+
options = args.extract_options!
|
14
|
+
@api_key = args[0]
|
15
|
+
@conn = Faraday.new(:url => "http://api.yipit.com") do |builder|
|
16
|
+
builder.adapter Faraday.default_adapter
|
17
|
+
builder.adapter :logger if options[:debug] == true
|
18
|
+
builder.use Faraday::Response::ParseJson
|
19
|
+
builder.use Faraday::Response::Mashify
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# @overload deals(options={})
|
24
|
+
# Search for Deals
|
25
|
+
# @param [Hash] options A customizable set of options
|
26
|
+
# @option options [String] :lat Latitude of point to to sort deals by proximity to. Use with lon. Uses radius.
|
27
|
+
# @option options [String] :lon Longitude of point to to sort deals by proximity to. Use with lat. Uses radius.
|
28
|
+
# @option options [Fixnum] :radius Maximum distance of radius in miles to deal location from center point. Defaults to 10. Requires lat and lon
|
29
|
+
# @option options [String] :divisions One or more division slugs (comma separated). See Divisions API for more details.
|
30
|
+
# @option options [String] :source One or more source slugs (comma separated). See Sources API for more details.
|
31
|
+
# @option options [String] :phone Deals available at a business matching one of the phone numbers. See Businesses API for more details.
|
32
|
+
# @option options [String] :tag One or more tag slugs (comma separated). See Tags API for more details. Note: Specifying multiple tags returns deals matching any one of the tags, NOT all of them
|
33
|
+
# @option options [Boolean] :paid Shows deals filtered on paid status. Defaults to false. Set to true if you would like to see all deals.
|
34
|
+
# @return [Array] An array of Hashie::Mash objects representing Yipit deals
|
35
|
+
# @example Search deals by latitude and longitude
|
36
|
+
# client.deals(:lat => "-37.74", :lon => "-76.00")
|
37
|
+
# @example Search deals within a 2 miles radius of latitude and longitude
|
38
|
+
# client.deals(:lat => "-37.74", :lon => "-76.00", :radius => 2)
|
39
|
+
# @example Search deals from Groupon
|
40
|
+
# client.deals(:source => "Groupon")
|
41
|
+
# @example Search deals based on phone number
|
42
|
+
# client.deals(:phone => "7185551212")
|
43
|
+
# @example Search deals based on tags
|
44
|
+
# client.deals(:tag => "restaurants,spa")
|
45
|
+
# @example Search deals based on paid status. (Defaults to false)
|
46
|
+
# client.deals(:paid => true)
|
47
|
+
# @overload deals(deal_id)
|
48
|
+
# Get deal details
|
49
|
+
# @param [Fixnum] deal_id A Deal Id
|
50
|
+
# @return [Hashie::Mash] A Hashie::Mash object representing a Yipit deal
|
51
|
+
def deals(*args)
|
52
|
+
super
|
53
|
+
end
|
54
|
+
|
55
|
+
# @overload sources(options={})
|
56
|
+
# Search for sources
|
57
|
+
# @param [Hash] options A customizable set of options
|
58
|
+
# @option options [String] :division One or more division slugs. See Divisions API for more details. Note: Specifying multiple divisions returns sources that exist in either of the divisions, NOT all of them.
|
59
|
+
# @option options [String] :paid When paid is true, only paid sources are returned. Defaults to false.
|
60
|
+
# @overload sources(source_id)
|
61
|
+
# Get source details
|
62
|
+
# @param [String] slug A source slug
|
63
|
+
# @return [Hashie::Mash] A Hashie::Mash object representing a Yipit Deal Source
|
64
|
+
def sources(*args)
|
65
|
+
super
|
66
|
+
end
|
67
|
+
|
68
|
+
# @overload tags(options={})
|
69
|
+
# This method returns a list of all tags. There are no parameters specific to tags.
|
70
|
+
# @param [Hash] options A customizable set of options
|
71
|
+
# @return [Array] An array of Hashie::Mash objects representing Yipit tags.
|
72
|
+
def tags(*args)
|
73
|
+
super
|
74
|
+
end
|
75
|
+
def divisions(*args)
|
76
|
+
super
|
77
|
+
end
|
78
|
+
def businesses(*args)
|
79
|
+
super
|
80
|
+
end
|
81
|
+
|
82
|
+
def method_missing(sym, *args, &block)
|
83
|
+
options = args.extract_options!.merge(:key => api_key, :limit => 5000)
|
84
|
+
response = conn.get("/v1/#{sym.to_s}/#{args[0]}") { |req| req.params = options }
|
85
|
+
puts response
|
86
|
+
ret = response.body['response']["#{sym.to_s}"]
|
87
|
+
mashes = ret.map{|h| Hashie::Mash.new(h)}
|
88
|
+
args[0].nil? ? mashes : mashes.first if mashes
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
describe Yipit::Client do
|
3
|
+
context "api" do
|
4
|
+
before(:all) do
|
5
|
+
api_key="XZgnp3v2vyrBr3eR"
|
6
|
+
@client = Yipit::Client.new(api_key)
|
7
|
+
end
|
8
|
+
context "businesses" do
|
9
|
+
context "search businesses" do
|
10
|
+
# use_vcr_cassette
|
11
|
+
before(:all) do
|
12
|
+
@businesses = @client.businesses
|
13
|
+
end
|
14
|
+
specify { @businesses.size.should > 1 }
|
15
|
+
end
|
16
|
+
context "business details" do
|
17
|
+
before(:all) do
|
18
|
+
@businesses = @client.businesses("orpheum-theater")
|
19
|
+
end
|
20
|
+
specify { @business.name.should == "Orpheum Theatre" }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
describe Yipit::Client do
|
3
|
+
context "api" do
|
4
|
+
before(:all) do
|
5
|
+
api_key="XZgnp3v2vyrBr3eR"
|
6
|
+
@client = Yipit::Client.new(api_key)
|
7
|
+
end
|
8
|
+
context "businesses" do
|
9
|
+
context "search businesses" do
|
10
|
+
# use_vcr_cassette
|
11
|
+
before(:all) do
|
12
|
+
@businesses = @client.businesses
|
13
|
+
end
|
14
|
+
specify { @businesses.size.should > 1 }
|
15
|
+
end
|
16
|
+
context "business details" do
|
17
|
+
before(:all) do
|
18
|
+
@businesses = @client.businesses(18005)
|
19
|
+
end
|
20
|
+
specify { @business.name.should == "Orpheum Theatre" }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Yipit::Client do
|
4
|
+
context "api" do
|
5
|
+
before(:all) do
|
6
|
+
api_key="XZgnp3v2vyrBr3eR"
|
7
|
+
@client = Yipit::Client.new(api_key)
|
8
|
+
end
|
9
|
+
context "deals" do
|
10
|
+
context "search" do
|
11
|
+
context "with no args" do
|
12
|
+
use_vcr_cassette
|
13
|
+
before(:all) do
|
14
|
+
@deals = @client.deals
|
15
|
+
end
|
16
|
+
subject { @deals }
|
17
|
+
it { should_not be_nil }
|
18
|
+
it { should be_an(Array) }
|
19
|
+
it { should have(20).items }
|
20
|
+
end
|
21
|
+
context "with Brooklyn, NY lat/long" do
|
22
|
+
before(:all) do
|
23
|
+
@deals = @client.deals(:lat => "40.7325859", :lon => "-73.9568557")
|
24
|
+
end
|
25
|
+
subject { @deals }
|
26
|
+
it { should_not be_nil }
|
27
|
+
subject { @deals.first.division.name }
|
28
|
+
it { should eql "New York" }
|
29
|
+
subject { @deals.last.division.name }
|
30
|
+
it { should eql "New York" }
|
31
|
+
end
|
32
|
+
# TODO: Better test.
|
33
|
+
context "with Brooklyn, NY lat/long, scoped to a 2 mile radius" do
|
34
|
+
before(:all) do
|
35
|
+
@deals = @client.deals(:lat => "40.7325859", :lon => "-73.9568557", :radius => 2)
|
36
|
+
end
|
37
|
+
subject { @deals }
|
38
|
+
it { should_not be_nil }
|
39
|
+
subject { @deals.first.division.name }
|
40
|
+
it { should eql "New York" }
|
41
|
+
subject { @deals.last.division.name }
|
42
|
+
it { should eql "New York" }
|
43
|
+
end
|
44
|
+
context "from Groupon" do
|
45
|
+
before(:all) do
|
46
|
+
@deals = @client.deals(:source => "Groupon")
|
47
|
+
end
|
48
|
+
subject { @deals }
|
49
|
+
it { should_not be_nil }
|
50
|
+
context "source name" do
|
51
|
+
subject { @deals.first.source.name }
|
52
|
+
it { should eql "Groupon" }
|
53
|
+
subject { @deals.last.source.name }
|
54
|
+
it { should eql "Groupon" }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
context "by phone number" do
|
58
|
+
before(:all) do
|
59
|
+
@deals = @client.deals(:phone => "718-599-2700")
|
60
|
+
end
|
61
|
+
subject { @deals }
|
62
|
+
it { should_not be_nil }
|
63
|
+
subject { @deals.first.business.name.strip }
|
64
|
+
it { should eql "Kenny's Trattoria" }
|
65
|
+
end
|
66
|
+
context "tagged with 'restaurants'" do
|
67
|
+
before(:all) do
|
68
|
+
@deals = @client.deals(:tag => "restaurants")
|
69
|
+
end
|
70
|
+
subject { @deals }
|
71
|
+
it { should_not be_nil }
|
72
|
+
subject { @deals.first.tags.first.name }
|
73
|
+
it { should eql "Restaurants" }
|
74
|
+
subject { @deals.last.tags.first.name }
|
75
|
+
it { should eql "Restaurants" }
|
76
|
+
end
|
77
|
+
context "paid deals'" do
|
78
|
+
before(:all) do
|
79
|
+
@deals = @client.deals(:paid => "true")
|
80
|
+
require 'pp'
|
81
|
+
puts @deals.inspect
|
82
|
+
end
|
83
|
+
subject { @deals }
|
84
|
+
it { should_not be_nil }
|
85
|
+
end
|
86
|
+
end
|
87
|
+
context "details" do
|
88
|
+
before(:all) do
|
89
|
+
@deal = @client.deals(7238)
|
90
|
+
end
|
91
|
+
subject { @deal }
|
92
|
+
it { should_not be_nil }
|
93
|
+
it { should be_a(Hashie::Mash) }
|
94
|
+
it { should respond_to(:id) }
|
95
|
+
it { should respond_to(:title) }
|
96
|
+
it { should respond_to(:business) }
|
97
|
+
it { should respond_to(:images) }
|
98
|
+
it { should respond_to(:business) }
|
99
|
+
it { should respond_to(:division) }
|
100
|
+
it { should respond_to(:source) }
|
101
|
+
it { should respond_to(:tags) }
|
102
|
+
# etc...
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Yipit::Client do
|
4
|
+
context "api" do
|
5
|
+
before(:all) do
|
6
|
+
api_key="XZgnp3v2vyrBr3eR"
|
7
|
+
@client = Yipit::Client.new(api_key)
|
8
|
+
end
|
9
|
+
context "divisions" do
|
10
|
+
context "search divisions" do
|
11
|
+
# use_vcr_cassette
|
12
|
+
context "all" do
|
13
|
+
before(:all) do
|
14
|
+
@divisions = @client.divisions
|
15
|
+
end
|
16
|
+
context "the results" do
|
17
|
+
subject { @divisions }
|
18
|
+
specify { should_not be_nil }
|
19
|
+
specify { should have_at_least(1).items }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
context "by source" do
|
23
|
+
before(:all) do
|
24
|
+
@divisions = @client.divisions(:source => "groupon")
|
25
|
+
puts @divisions.size
|
26
|
+
end
|
27
|
+
subject { @divisions }
|
28
|
+
context "the results" do
|
29
|
+
specify { should_not be_nil }
|
30
|
+
specify { should have_at_least(20).items }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
context "division details" do
|
35
|
+
before(:all) do
|
36
|
+
@division = @client.divisions("new-york")
|
37
|
+
end
|
38
|
+
context "name" do
|
39
|
+
specify { @division.name.should == "New York" }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Yipit::Client do
|
4
|
+
context "api" do
|
5
|
+
before(:all) do
|
6
|
+
api_key="XZgnp3v2vyrBr3eR"
|
7
|
+
@client = Yipit::Client.new(api_key)
|
8
|
+
end
|
9
|
+
context "sources" do
|
10
|
+
context "search sources" do
|
11
|
+
# use_vcr_cassette
|
12
|
+
context "all" do
|
13
|
+
before(:all) do
|
14
|
+
@sources = @client.sources
|
15
|
+
end
|
16
|
+
context "the results" do
|
17
|
+
subject { @sources }
|
18
|
+
specify { should_not be_nil }
|
19
|
+
specify { should have_at_least(1).items }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
context "by division" do
|
23
|
+
before(:all) do
|
24
|
+
@sources = @client.sources(:divisions => "new-york")
|
25
|
+
end
|
26
|
+
subject { @sources }
|
27
|
+
context "the results" do
|
28
|
+
specify { should_not be_nil }
|
29
|
+
specify { should have_at_least(1).items }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
context "source details" do
|
34
|
+
before(:all) do
|
35
|
+
@source = @client.sources("groupon")
|
36
|
+
end
|
37
|
+
context "name" do
|
38
|
+
specify { @source.name.should == "Groupon" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
|
3
|
+
SimpleCov.start do
|
4
|
+
add_group 'Yipit', 'lib/yipit'
|
5
|
+
add_group 'Specs', 'spec'
|
6
|
+
end
|
7
|
+
|
8
|
+
require File.expand_path('../../lib/yipit', __FILE__)
|
9
|
+
require 'rubygems'
|
10
|
+
require 'rspec'
|
11
|
+
require 'vcr'
|
12
|
+
|
13
|
+
VCR.config do |c|
|
14
|
+
c.cassette_library_dir = 'spec/cassettes'
|
15
|
+
c.stub_with :typhoeus
|
16
|
+
c.default_cassette_options = { :record => :new_episodes }
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec.configure do |c|
|
20
|
+
c.extend VCR::RSpec::Macros
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Yipit::Client do
|
4
|
+
context "api" do
|
5
|
+
before(:all) do
|
6
|
+
api_key=""
|
7
|
+
@client = Yipit::Client.new(api_key)
|
8
|
+
end
|
9
|
+
context "tags" do
|
10
|
+
context "search tags" do
|
11
|
+
# use_vcr_cassette
|
12
|
+
context "all" do
|
13
|
+
before(:all) do
|
14
|
+
@tags = @client.tags
|
15
|
+
end
|
16
|
+
context "the results" do
|
17
|
+
subject { @tags }
|
18
|
+
specify { should_not be_nil }
|
19
|
+
specify { should have_at_least(1).items }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
context "when passing params to tags" do
|
24
|
+
before(:all) do
|
25
|
+
@tag = @client.tags("restaurants")
|
26
|
+
end
|
27
|
+
context "the tag" do
|
28
|
+
subject { @tag }
|
29
|
+
specify { should be_nil }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
data/yipit.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "yipit/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "yipit_n4l"
|
7
|
+
s.version = Yipit::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Josh Deeden", "Mark Coates"]
|
10
|
+
s.email = ["mark@nest4less.com"]
|
11
|
+
s.homepage = "http://github.com/Nest4LessDev/yipit"
|
12
|
+
s.summary = %q{A simple wrapper for the Yipit API}
|
13
|
+
s.description = %q{A simple wrapper for the Yipit API}
|
14
|
+
|
15
|
+
s.rubyforge_project = "yipit_n4l"
|
16
|
+
s.add_development_dependency('rake')
|
17
|
+
s.add_development_dependency('rspec')
|
18
|
+
s.add_development_dependency('simplecov')
|
19
|
+
s.add_development_dependency('vcr')
|
20
|
+
s.add_development_dependency('fakeweb')
|
21
|
+
s.add_development_dependency('yard')
|
22
|
+
s.add_development_dependency('maruku')
|
23
|
+
s.add_runtime_dependency("faraday")
|
24
|
+
s.add_runtime_dependency("faraday_middleware")
|
25
|
+
s.add_runtime_dependency("typhoeus")
|
26
|
+
s.add_runtime_dependency('hashie')
|
27
|
+
s.add_runtime_dependency('multi_json')
|
28
|
+
|
29
|
+
s.files = `git ls-files`.split("\n")
|
30
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
31
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
32
|
+
s.require_paths = ["lib"]
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,268 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yipit_n4l
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Josh Deeden
|
9
|
+
- Mark Coates
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-09-24 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: rspec
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
type: :development
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: simplecov
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: vcr
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: fakeweb
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: yard
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: maruku
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: faraday
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
type: :runtime
|
136
|
+
prerelease: false
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: faraday_middleware
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
type: :runtime
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: typhoeus
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: hashie
|
177
|
+
requirement: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
179
|
+
requirements:
|
180
|
+
- - ! '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
type: :runtime
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
187
|
+
requirements:
|
188
|
+
- - ! '>='
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0'
|
191
|
+
- !ruby/object:Gem::Dependency
|
192
|
+
name: multi_json
|
193
|
+
requirement: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
199
|
+
type: :runtime
|
200
|
+
prerelease: false
|
201
|
+
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
203
|
+
requirements:
|
204
|
+
- - ! '>='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0'
|
207
|
+
description: A simple wrapper for the Yipit API
|
208
|
+
email:
|
209
|
+
- mark@nest4less.com
|
210
|
+
executables: []
|
211
|
+
extensions: []
|
212
|
+
extra_rdoc_files: []
|
213
|
+
files:
|
214
|
+
- .gitignore
|
215
|
+
- .rvmrc
|
216
|
+
- Gemfile
|
217
|
+
- README.md
|
218
|
+
- Rakefile
|
219
|
+
- lib/core_ext/array.rb
|
220
|
+
- lib/yipit.rb
|
221
|
+
- lib/yipit/version.rb
|
222
|
+
- spec/businesses/businesses_spec.rb
|
223
|
+
- spec/client/client_spec.rb
|
224
|
+
- spec/deals/deals_spec.rb
|
225
|
+
- spec/divisions/divisions_spec.rb
|
226
|
+
- spec/sources/sources_spec.rb
|
227
|
+
- spec/spec_helper.rb
|
228
|
+
- spec/tags/tags_spec.rb
|
229
|
+
- yipit.gemspec
|
230
|
+
homepage: http://github.com/Nest4LessDev/yipit
|
231
|
+
licenses: []
|
232
|
+
post_install_message:
|
233
|
+
rdoc_options: []
|
234
|
+
require_paths:
|
235
|
+
- lib
|
236
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
237
|
+
none: false
|
238
|
+
requirements:
|
239
|
+
- - ! '>='
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
segments:
|
243
|
+
- 0
|
244
|
+
hash: -4548077650586067815
|
245
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
|
+
none: false
|
247
|
+
requirements:
|
248
|
+
- - ! '>='
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
segments:
|
252
|
+
- 0
|
253
|
+
hash: -4548077650586067815
|
254
|
+
requirements: []
|
255
|
+
rubyforge_project: yipit_n4l
|
256
|
+
rubygems_version: 1.8.24
|
257
|
+
signing_key:
|
258
|
+
specification_version: 3
|
259
|
+
summary: A simple wrapper for the Yipit API
|
260
|
+
test_files:
|
261
|
+
- spec/businesses/businesses_spec.rb
|
262
|
+
- spec/client/client_spec.rb
|
263
|
+
- spec/deals/deals_spec.rb
|
264
|
+
- spec/divisions/divisions_spec.rb
|
265
|
+
- spec/sources/sources_spec.rb
|
266
|
+
- spec/spec_helper.rb
|
267
|
+
- spec/tags/tags_spec.rb
|
268
|
+
has_rdoc:
|