foursquared 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://travis-ci.org/ronyv89/foursquared.png)](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
|