foursquared 0.0.4 → 0.0.5
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 +1 -0
- data/README.md +56 -2
- data/lib/foursquared.rb +2 -8
- data/lib/foursquared/checkins.rb +6 -5
- data/lib/foursquared/client.rb +13 -7
- data/lib/foursquared/events.rb +12 -0
- data/lib/foursquared/oauth/client.rb +1 -0
- data/lib/foursquared/response/event.rb +60 -8
- data/lib/foursquared/response/venue.rb +16 -0
- data/lib/foursquared/version.rb +1 -1
- data/spec/foursquared/badges_spec.rb +4 -19
- data/spec/foursquared/checkins_spec.rb +113 -0
- data/spec/foursquared/response/checkin_spec.rb +30 -9
- data/spec/foursquared/response/user_spec.rb +0 -1
- data/spec/foursquared/response/venue_spec.rb +0 -1
- data/spec/foursquared/users_spec.rb +1 -5
- data/spec/spec_helper.rb +3 -2
- metadata +2 -5
- data/lib/core_ext/symbol.rb +0 -7
- data/spec/foursquared/response/event_category_spec.rb +0 -48
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# Foursquared
|
2
|
-
[](https://travis-ci.org/ronyv89/foursquared)
|
3
2
|
|
4
3
|
Simple client library for Foursquare API V2 with OAuth2 authentication
|
5
4
|
## Installation
|
@@ -18,8 +17,63 @@ Or install it yourself as:
|
|
18
17
|
|
19
18
|
## Usage
|
20
19
|
|
21
|
-
|
20
|
+
### OAuth2 Authentication
|
22
21
|
|
22
|
+
Foursquare OAuth2 authentication is integrated here.
|
23
|
+
First you will have to initialize a Foursquared::OAuth::Client object with the client id, client secret and the callback url
|
24
|
+
|
25
|
+
oauth_client = Foursquared::OAuth::Client.new("your_client_id", "your_client_secret", "http://yourcallbackurl")
|
26
|
+
|
27
|
+
Obtain the authentication url
|
28
|
+
|
29
|
+
auth_url = oauth_client.authorize_url
|
30
|
+
|
31
|
+
Redirect the user to the above obtained auth_url. After user gives access to your app, they will be redirected to the callback url with a 'code' parameter. Extract this code and get the access token by invoking the following method
|
32
|
+
|
33
|
+
access_token = oauth_client.get_access_token("the_extracted_code")
|
34
|
+
|
35
|
+
### Instantiate a client
|
36
|
+
|
37
|
+
After getting the access token instantiate the Foursquared client
|
38
|
+
|
39
|
+
client = Foursquared::Client.new(:access_token => "your_acess_token")
|
40
|
+
|
41
|
+
For userless access you can skip the above step and instantiate the client with your client id and client secret.
|
42
|
+
|
43
|
+
client = Foursquared::Client.new(:client_id => "your_client_id", :client_secret => "your_client_secret")
|
44
|
+
|
45
|
+
## Features
|
46
|
+
|
47
|
+
1. Every response item is an object. For example, every user will be a Foursquared::Response::User.
|
48
|
+
2. Each object will have its own actions. For example you can friend, unfriend or deny the request from a user after retrieving the user object.
|
49
|
+
|
50
|
+
## Examples
|
51
|
+
|
52
|
+
You can always navigate to [the documentation](http://rubydoc.info/gems/foursquared/frames) for a list of all supported methods and available options.
|
53
|
+
|
54
|
+
### Get user details
|
55
|
+
|
56
|
+
client.user(10230)
|
57
|
+
|
58
|
+
### Get a venue details
|
59
|
+
|
60
|
+
venue = client.venue("4b2afcaaf964a5205bb324e3")
|
61
|
+
|
62
|
+
### Checkin at a venue
|
63
|
+
|
64
|
+
You can use the above obtained Foursquared::Response::Venue object to checkin
|
65
|
+
|
66
|
+
venue.checkin(:broadcast => 'public', :ll => '36.142064,-86.816086', :shout => 'zomg coffee!1!')
|
67
|
+
|
68
|
+
You can also directly checkin at a venue providing its venue id.
|
69
|
+
|
70
|
+
client.add_checkin(:venueId => "4b2afcaaf964a5205bb324e3", :broadcast => 'public', :ll => '36.142064,-86.816086', :shout => 'zomg coffee!1!')
|
71
|
+
|
72
|
+
## Todo
|
73
|
+
|
74
|
+
* Add more tests
|
75
|
+
* Improve documentation
|
76
|
+
* Integrate more endpoints
|
23
77
|
## Contributing
|
24
78
|
|
25
79
|
1. Fork it
|
data/lib/foursquared.rb
CHANGED
@@ -1,18 +1,11 @@
|
|
1
1
|
require 'httmultiparty'
|
2
2
|
require 'json'
|
3
3
|
directory = File.expand_path(File.dirname(__FILE__))
|
4
|
-
require 'core_ext/symbol'
|
5
4
|
module Foursquared
|
6
5
|
class << self
|
7
6
|
|
8
|
-
|
9
7
|
attr_accessor :client_id, :client_secret, :api_version, :ssl, :access_token, :locale
|
10
|
-
|
11
|
-
|
12
|
-
def configure
|
13
|
-
yield self
|
14
|
-
true
|
15
|
-
end
|
8
|
+
|
16
9
|
end
|
17
10
|
|
18
11
|
# require 'foursquare2/campaigns'
|
@@ -25,6 +18,7 @@ module Foursquared
|
|
25
18
|
require 'foursquared/events'
|
26
19
|
require 'foursquared/pages'
|
27
20
|
require 'foursquared/specials'
|
21
|
+
require 'foursquared/settings'
|
28
22
|
require 'foursquared/tips'
|
29
23
|
require 'foursquared/oauth/client'
|
30
24
|
require 'foursquared/client'
|
data/lib/foursquared/checkins.rb
CHANGED
@@ -24,10 +24,10 @@ module Foursquared
|
|
24
24
|
# @option options [String] :llAcc Accuracy of the user's latitude and longitude, in meters
|
25
25
|
# @option options [String] :alt Altitude of the user's location, in meters.
|
26
26
|
# @option options [String] :altAcc Vertical accuracy of the user's location, in meters.
|
27
|
-
# @return [
|
27
|
+
# @return [Hash] A checkin object and the post checkin notifications
|
28
28
|
def add_checkin options={}
|
29
29
|
response = post("/checkins/add", options)["response"]
|
30
|
-
{:checkin => Foursquared::Response::Checkin.new(self, response["checkin"]), :notifications =>
|
30
|
+
{:checkin => Foursquared::Response::Checkin.new(self, response["checkin"]), :notifications => response["notifications"]}
|
31
31
|
end
|
32
32
|
|
33
33
|
# Recent checkins by friends
|
@@ -45,9 +45,10 @@ module Foursquared
|
|
45
45
|
# @param [String] checkin_id The ID of the checkin to get likes for.
|
46
46
|
# @return [Hash] A count and groups of users who like this checkin
|
47
47
|
def checkin_likes checkin_id
|
48
|
-
|
49
|
-
@likes
|
50
|
-
|
48
|
+
@likes = get("/checkins/#{checkin_id}/likes")["response"]["likes"]
|
49
|
+
@likes["groups"].each do |group|
|
50
|
+
group["items"].map!{|item|Foursquared::Response::User.new(self, item)}
|
51
|
+
end
|
51
52
|
@likes
|
52
53
|
end
|
53
54
|
|
data/lib/foursquared/client.rb
CHANGED
@@ -13,16 +13,22 @@ module Foursquared
|
|
13
13
|
include Badges
|
14
14
|
include Events
|
15
15
|
include Pages
|
16
|
+
include Specials
|
17
|
+
include Settings
|
18
|
+
include Tips
|
16
19
|
base_uri 'https://api.foursquare.com/v2/'
|
17
20
|
format :json
|
18
|
-
|
21
|
+
|
22
|
+
attr_accessor :client_id, :client_secret, :access_token
|
19
23
|
def initialize credentials={}
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
self.class.default_params :
|
25
|
-
|
24
|
+
@client_id = credentials[:client_id]
|
25
|
+
@client_secret = credentials[:client_secret]
|
26
|
+
@access_token = credentials[:access_token]
|
27
|
+
if @access_token
|
28
|
+
self.class.default_params :oauth_token => @access_token
|
29
|
+
elsif @client_id and @client_secret
|
30
|
+
self.class.default_params :client_id => @client_id
|
31
|
+
self.class.default_params :client_secret => @client_secret
|
26
32
|
else
|
27
33
|
raise "Must provide access_token or client_id and client_secret"
|
28
34
|
end
|
data/lib/foursquared/events.rb
CHANGED
@@ -14,5 +14,17 @@ module Foursquared
|
|
14
14
|
response = get("/events/categories")["response"]
|
15
15
|
response["categories"].collect{|category| Foursquared::Response::Category.new(self, category)}
|
16
16
|
end
|
17
|
+
|
18
|
+
# Create an event for a venue that you manage.
|
19
|
+
# @param [Hash] options
|
20
|
+
# @option options [String] :venueId The id of the venue where the event is being held.
|
21
|
+
# @option options [String] :name The name of the event
|
22
|
+
# @option options [String] :start Time when the event is scheduled to start, in seconds since Unix epoch.
|
23
|
+
# @option options [String] :end Time when the event is scheduled to end, in seconds since Unix epoch.
|
24
|
+
def add_event
|
25
|
+
response = post("/events/categories")["response"]
|
26
|
+
Foursquared::Response::Event.new(self, response["event"])
|
27
|
+
end
|
28
|
+
|
17
29
|
end
|
18
30
|
end
|
@@ -28,6 +28,7 @@ module Foursquared
|
|
28
28
|
|
29
29
|
# Step 2: Get access token after authorizing user
|
30
30
|
# @param [String] code The value extracted from the callback url param 'code'
|
31
|
+
# @return [String] the access token
|
31
32
|
def get_access_token code
|
32
33
|
token = oauth_client.auth_code.get_token(code, :redirect_uri => callback_url)
|
33
34
|
@access_token = token.token
|
@@ -3,21 +3,73 @@ module Foursquared
|
|
3
3
|
# Event response
|
4
4
|
class Event
|
5
5
|
attr_reader :client, :response
|
6
|
+
|
6
7
|
def initialize client, response
|
7
8
|
@client = client
|
8
9
|
@response = response
|
9
10
|
end
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
# The ID of the event
|
14
|
+
# @return [String]
|
15
|
+
def id
|
16
|
+
response["id"]
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
# The name of the event
|
20
|
+
# @return [String]
|
21
|
+
def name
|
22
|
+
response["name"]
|
23
|
+
end
|
24
|
+
|
25
|
+
# The website for the event
|
26
|
+
# @return [String]
|
27
|
+
def url
|
28
|
+
response["url"]
|
29
|
+
end
|
30
|
+
|
31
|
+
# The stats for the event
|
32
|
+
# @return [String]
|
33
|
+
def stats
|
34
|
+
response["stats"]
|
35
|
+
end
|
36
|
+
|
37
|
+
# The ID of the venue of the event
|
38
|
+
# @return [String]
|
39
|
+
def venue_id
|
40
|
+
response["venueId"]
|
41
|
+
end
|
42
|
+
|
43
|
+
# The count of ids of this event in third-party services, plus items, an array of domain, the third party provider, and id, the id in their system.
|
44
|
+
# @return [Hash]
|
45
|
+
def foreign_ids
|
46
|
+
response["foreignIds"]
|
47
|
+
end
|
48
|
+
|
49
|
+
# The categories that have been applied to this event
|
50
|
+
# @return [Array<Foursquared::Response::Category>]
|
51
|
+
def categories
|
52
|
+
@categories = response["categories"]
|
53
|
+
@categories.map!{|category| Foursquared::Response::Category.new(client, category)} if @categories
|
54
|
+
@categories
|
55
|
+
end
|
56
|
+
|
57
|
+
# Whether the event happens throughout the day
|
58
|
+
# @return [Boolean]
|
59
|
+
def all_day?
|
60
|
+
response["allDay"]
|
61
|
+
end
|
62
|
+
|
63
|
+
# The time zone for the event
|
64
|
+
# @return [String]
|
65
|
+
def time_zone
|
66
|
+
response["timeZone"]
|
67
|
+
end
|
68
|
+
|
69
|
+
# The unlock message for the checkin at the event
|
70
|
+
# @return [String]
|
71
|
+
def unlock_message
|
72
|
+
response["unlockMessage"]
|
21
73
|
end
|
22
74
|
|
23
75
|
# The time at which the event starts
|
@@ -247,6 +247,22 @@ module Foursquared
|
|
247
247
|
response["specialsNearby"].map{|special| Foursquared::Response::Special.new(client, special)} if response["specialsNearby"]
|
248
248
|
end
|
249
249
|
|
250
|
+
# Checkin at this venue
|
251
|
+
# @param [Hash] options
|
252
|
+
# @option options [String] :eventId The event the user is checking in to.
|
253
|
+
# @option options [String] :shout A message about your check-in
|
254
|
+
# @option options [String] :mentions Semicolon-delimited list of mentions
|
255
|
+
# @option options [String] :broadcast Who to broadcast this check-in to
|
256
|
+
# @option options [String] :ll Latitude and longitude of the user's location.
|
257
|
+
# @option options [String] :llAcc Accuracy of the user's latitude and longitude, in meters
|
258
|
+
# @option options [String] :alt Altitude of the user's location, in meters.
|
259
|
+
# @option options [String] :altAcc Vertical accuracy of the user's location, in meters.
|
260
|
+
# @return [Hash] A checkin object and the post checkin notifications
|
261
|
+
def checkin options={}
|
262
|
+
options.merge!({:venueId => id})
|
263
|
+
checkin_response = post("/checkins/add", options)["response"]
|
264
|
+
{:checkin => Foursquared::Response::Checkin.new(self, checkin_response["checkin"]), :notifications => response["notifications"]}
|
265
|
+
end
|
250
266
|
end
|
251
267
|
end
|
252
268
|
end
|
data/lib/foursquared/version.rb
CHANGED
@@ -57,26 +57,11 @@ describe Foursquared::Badges do
|
|
57
57
|
|
58
58
|
subject { foursquared_test_client }
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
describe "#badge" do
|
61
|
+
it "should return the badge with the given badge ID" do
|
62
|
+
stub_request(:get, "https://api.foursquare.com/v2/badges/4f7a7d3ae4b02f1b2c869efb?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").
|
63
63
|
to_return(:status => 200, :body => badge.to_json, :headers => {})
|
64
|
-
|
65
|
-
end
|
66
|
-
describe "#user_badges" do
|
67
|
-
describe "sets" do
|
68
|
-
it "should give the sets of badge types" do
|
69
|
-
@user_badges["sets"]["groups"].should each { |group|
|
70
|
-
group.should be_a(Foursquared::Response::BadgeGroup)
|
71
|
-
}
|
72
|
-
end
|
73
|
-
end
|
74
|
-
describe "badges" do
|
75
|
-
it "should give the badges' details" do
|
76
|
-
@user_badges["badges"].keys.should each {|badge_id|
|
77
|
-
@user_badges["badges"][badge_id].should be_a(Foursquared::Response::Badge)
|
78
|
-
}
|
79
|
-
end
|
64
|
+
subject.badge("4f7a7d3ae4b02f1b2c869efb").should be_a(Foursquared::Response::Badge)
|
80
65
|
end
|
81
66
|
end
|
82
67
|
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe Foursquared::Checkins do
|
3
|
+
|
4
|
+
let(:checkin) do
|
5
|
+
YAML.load(%{
|
6
|
+
meta:
|
7
|
+
code: 200
|
8
|
+
notifications: []
|
9
|
+
response:
|
10
|
+
checkin:
|
11
|
+
id: "4d627f6814963704dc28ff94"
|
12
|
+
createdAt: 1298300776
|
13
|
+
type: "checkin"
|
14
|
+
shout: "Another one of these days. #snow"
|
15
|
+
timeZoneOffset: -300
|
16
|
+
user:
|
17
|
+
id: "32"
|
18
|
+
firstName: "Dens"
|
19
|
+
gender: "male"
|
20
|
+
photo:
|
21
|
+
prefix: "https://irs0.4sqi.net/img/user/"
|
22
|
+
suffix: "/32_1239135232.jpg"
|
23
|
+
venue:
|
24
|
+
id: "408c5100f964a520c6f21ee3"
|
25
|
+
name: "Tompkins Square Park"
|
26
|
+
|
27
|
+
})
|
28
|
+
end
|
29
|
+
|
30
|
+
let(:recent_checkins) do
|
31
|
+
YAML.load(%{
|
32
|
+
meta:
|
33
|
+
code: 200
|
34
|
+
response:
|
35
|
+
recent:
|
36
|
+
- id: "50ec9b33e4b0b63dc59108bb"
|
37
|
+
createdAt: 1357683507
|
38
|
+
type: "checkin"
|
39
|
+
shout: "Shadow's photoshoot"
|
40
|
+
timeZoneOffset: 330
|
41
|
+
- id: "50ec7ad7e4b0beb130e3c6fb"
|
42
|
+
createdAt: 1357675223
|
43
|
+
type: "checkin"
|
44
|
+
timeZoneOffset: 330
|
45
|
+
})
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:checkin_likes) do
|
49
|
+
YAML.load(%{
|
50
|
+
meta:
|
51
|
+
code: 200
|
52
|
+
response:
|
53
|
+
likes:
|
54
|
+
count: 2
|
55
|
+
groups:
|
56
|
+
- type: "others"
|
57
|
+
count: 2
|
58
|
+
items:
|
59
|
+
- id: "4006236"
|
60
|
+
firstName: "Shane"
|
61
|
+
lastName: "O."
|
62
|
+
gender: "male"
|
63
|
+
photo:
|
64
|
+
prefix: "https://irs3.4sqi.net/img/user/"
|
65
|
+
suffix: "/OHXZCLCMRAGXPV3S.jpg"
|
66
|
+
- id: "591008"
|
67
|
+
firstName: "mi1ky"
|
68
|
+
lastName: "L."
|
69
|
+
gender: "female"
|
70
|
+
photo:
|
71
|
+
prefix: "https://irs1.4sqi.net/img/user/"
|
72
|
+
suffix: "/UX1JTWSNWY5YV1PS.jpg"
|
73
|
+
summary: "2 likes"
|
74
|
+
})
|
75
|
+
end
|
76
|
+
subject { foursquared_test_client }
|
77
|
+
|
78
|
+
describe "#add_checkin" do
|
79
|
+
it "should add a new checkin" do
|
80
|
+
stub_request(:post, "https://api.foursquare.com/v2/checkins/add?oauth_token=TestToken").
|
81
|
+
with(:body => "venueId=408c5100f964a520c6f21ee3&v=#{Time.now.strftime("%Y%m%d")}").to_return(:status => 200, :body => checkin.to_json, :headers => {})
|
82
|
+
subject.add_checkin({:venueId => "408c5100f964a520c6f21ee3"})[:checkin].should be_a(Foursquared::Response::Checkin)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "#recent_checkins" do
|
87
|
+
it "should return the recent checkins for the acting user" do
|
88
|
+
stub_request(:get, "https://api.foursquare.com/v2/checkins/recent?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").to_return(:status => 200, :body => recent_checkins.to_json, :headers => {})
|
89
|
+
subject.recent_checkins.should each {|checkin|
|
90
|
+
checkin.should be_a Foursquared::Response::Checkin
|
91
|
+
}
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "#checkin_likes" do
|
96
|
+
before :each do
|
97
|
+
stub_request(:get, "https://api.foursquare.com/v2/checkins/502bcde16de4146b7f104ac6/likes?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").to_return(:status => 200, :body => checkin_likes.to_json, :headers => {})
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should have count, groups and a summary" do
|
101
|
+
subject.checkin_likes("502bcde16de4146b7f104ac6").keys.should ~ ["summary", "count", "groups"]
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should have give groups of users" do
|
105
|
+
subject.checkin_likes("502bcde16de4146b7f104ac6")["groups"].should each { |group|
|
106
|
+
group["items"].should each {|item|
|
107
|
+
item.should be_a Foursquared::Response::User
|
108
|
+
}
|
109
|
+
}
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
@@ -31,8 +31,14 @@ describe Foursquared::Response::Checkin do
|
|
31
31
|
prefix: "https://irs3.4sqi.net/img/general/"
|
32
32
|
suffix: "/UBTEFRRMLYOHHX4RWHFTGQKSDMY14A1JLHURUTG5VUJ02KQ0.jpg"
|
33
33
|
likes:
|
34
|
-
count:
|
35
|
-
groups:
|
34
|
+
count: 1
|
35
|
+
groups:
|
36
|
+
- type: "others"
|
37
|
+
count: 1
|
38
|
+
items:
|
39
|
+
- id: "141623"
|
40
|
+
firstName: "chad"
|
41
|
+
lastName: "g."
|
36
42
|
like: false
|
37
43
|
score:
|
38
44
|
- total: 1
|
@@ -74,8 +80,6 @@ describe Foursquared::Response::Checkin do
|
|
74
80
|
|
75
81
|
stub_request(:get, "https://api.foursquare.com/v2/checkins/4d627f6814963704dc28ff94?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").
|
76
82
|
to_return(:status => 200, :body => checkin.to_json, :headers => {})
|
77
|
-
stub_request(:get, "https://api.foursquare.com/v2/checkins/4d627f6814963704dc28ff94/likes?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").
|
78
|
-
to_return(:status => 200, :body => likes.to_json, :headers => {})
|
79
83
|
end
|
80
84
|
|
81
85
|
it "should get checkin id" do
|
@@ -86,14 +90,31 @@ describe Foursquared::Response::Checkin do
|
|
86
90
|
subject.venue.should be_a(Foursquared::Response::Venue)
|
87
91
|
end
|
88
92
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
+
describe "likes for the checkin" do
|
94
|
+
describe "#full_likes" do
|
95
|
+
it "should get the full likes for the checkin" do
|
96
|
+
stub_request(:get, "https://api.foursquare.com/v2/checkins/4d627f6814963704dc28ff94/likes?oauth_token=TestToken&v=#{Time.now.strftime("%Y%m%d")}").to_return(:status => 200, :body => likes.to_json, :headers => {})
|
97
|
+
subject.full_likes["groups"].should each { |group|
|
98
|
+
group["items"].should each { |item|
|
99
|
+
item.should be_a(Foursquared::Response::User)
|
100
|
+
}
|
101
|
+
}
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "#likes" do
|
106
|
+
it "should return the likes as specified in the checkin response" do
|
107
|
+
subject.likes["groups"].should each { |group|
|
108
|
+
group["items"].should each { |item|
|
109
|
+
item.should be_a(Foursquared::Response::User)
|
110
|
+
}
|
111
|
+
}
|
112
|
+
end
|
113
|
+
end
|
93
114
|
end
|
94
115
|
|
95
116
|
it "should return the photos for the checkin" do
|
96
|
-
subject.photos.should each { |item|
|
117
|
+
subject.photos["items"].should each { |item|
|
97
118
|
item.should be_a Foursquared::Response::Photo
|
98
119
|
}
|
99
120
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "simplecov"
|
2
2
|
require "simplecov-rcov"
|
3
|
-
|
3
|
+
|
4
4
|
require 'webmock/rspec'
|
5
5
|
require 'rspec_multi_matchers'
|
6
6
|
|
@@ -10,8 +10,9 @@ SimpleCov.start do
|
|
10
10
|
add_filter "spec"
|
11
11
|
end if ENV["COVERAGE"]
|
12
12
|
|
13
|
+
require 'foursquared'
|
13
14
|
def foursquared_test_client
|
14
|
-
Foursquared::Client.new("TestToken")
|
15
|
+
Foursquared::Client.new({:access_token => "TestToken"})
|
15
16
|
end
|
16
17
|
|
17
18
|
class Array
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foursquared
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httmultiparty
|
@@ -250,7 +250,6 @@ files:
|
|
250
250
|
- README.md
|
251
251
|
- Rakefile
|
252
252
|
- foursquared.gemspec
|
253
|
-
- lib/core_ext/symbol.rb
|
254
253
|
- lib/foursquared.rb
|
255
254
|
- lib/foursquared/badges.rb
|
256
255
|
- lib/foursquared/checkins.rb
|
@@ -288,7 +287,6 @@ files:
|
|
288
287
|
- spec/foursquared/response/badge_spec.rb
|
289
288
|
- spec/foursquared/response/category_spec.rb
|
290
289
|
- spec/foursquared/response/checkin_spec.rb
|
291
|
-
- spec/foursquared/response/event_category_spec.rb
|
292
290
|
- spec/foursquared/response/event_spec.rb
|
293
291
|
- spec/foursquared/response/list_spec.rb
|
294
292
|
- spec/foursquared/response/photo_spec.rb
|
@@ -332,7 +330,6 @@ test_files:
|
|
332
330
|
- spec/foursquared/response/badge_spec.rb
|
333
331
|
- spec/foursquared/response/category_spec.rb
|
334
332
|
- spec/foursquared/response/checkin_spec.rb
|
335
|
-
- spec/foursquared/response/event_category_spec.rb
|
336
333
|
- spec/foursquared/response/event_spec.rb
|
337
334
|
- spec/foursquared/response/list_spec.rb
|
338
335
|
- spec/foursquared/response/photo_spec.rb
|
data/lib/core_ext/symbol.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'foursquared/response/event_category'
|
3
|
-
|
4
|
-
describe Foursquared::Response::EventCategory do
|
5
|
-
|
6
|
-
let(:event_category) do
|
7
|
-
YAML.load(%{
|
8
|
-
id: "4dfb90c6bd413dd705e8f897"
|
9
|
-
name: "Movies"
|
10
|
-
pluralName: "Movies"
|
11
|
-
shortName: "Movie"
|
12
|
-
icon:
|
13
|
-
prefix: "https://foursquare.com/img/categories_v2/arts_entertainment/movietheater_"
|
14
|
-
suffix: ".png"
|
15
|
-
categories:
|
16
|
-
- id: "4e132f48bd41026cd50e8f8e"
|
17
|
-
name: "Baseball Games"
|
18
|
-
pluralName: "Baseball Games"
|
19
|
-
shortName: "Baseball"
|
20
|
-
icon:
|
21
|
-
prefix: "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_baseball_"
|
22
|
-
suffix: ".png"
|
23
|
-
categories: []
|
24
|
-
}
|
25
|
-
)
|
26
|
-
end
|
27
|
-
|
28
|
-
subject {Foursquared::Response::EventCategory.new(event_category)}
|
29
|
-
|
30
|
-
describe "#icon" do
|
31
|
-
it "should have prefix, suffix and urls" do
|
32
|
-
subject.icon.keys.should ~ ["urls", "prefix", "suffix", ]
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "urls" do
|
36
|
-
it "should have urls for 32x32, 64x64 and 256x256 icons" do
|
37
|
-
subject.icon["urls"].keys.should ~ ["32x32", "64x64", "256x256"]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should give the sub categories of the category" do
|
44
|
-
subject.categories.should each { |category|
|
45
|
-
category.should be_a(Foursquared::Response::EventCategory)
|
46
|
-
}
|
47
|
-
end
|
48
|
-
end
|