jammed 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +6 -6
- data/jammed.gemspec +20 -20
- data/lib/jammed/api.rb +1 -1
- data/lib/jammed/base.rb +14 -9
- data/lib/jammed/followers.rb +10 -8
- data/lib/jammed/following.rb +10 -8
- data/lib/jammed/jams.rb +8 -6
- data/lib/jammed/likes.rb +8 -6
- data/lib/jammed/people_search.rb +10 -9
- data/lib/jammed/person.rb +5 -2
- data/lib/jammed/popular_jams.rb +4 -2
- data/lib/jammed/random.rb +5 -2
- data/lib/jammed/suggested_people.rb +5 -2
- data/lib/jammed/user.rb +12 -3
- data/lib/jammed/version.rb +1 -1
- data/lib/jammed.rb +6 -2
- data/spec/jammed/api_spec.rb +6 -0
- data/spec/jammed/base_spec.rb +14 -1
- data/spec/jammed/popular_jams_spec.rb +2 -2
- data/spec/jammed/random_spec.rb +2 -2
- data/spec/jammed/suggested_people_spec.rb +1 -1
- data/spec/jammed/user_spec.rb +4 -4
- metadata +23 -23
data/Gemfile
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem "httparty", "
|
4
|
-
gem "json"
|
3
|
+
gem "httparty", "~> 0.8.2"
|
4
|
+
gem "json", "~> 1.7.1"
|
5
5
|
|
6
6
|
group :development do
|
7
|
-
gem "rake", "
|
8
|
-
gem "jeweler", "
|
9
|
-
gem "rspec", "
|
10
|
-
gem "webmock", "
|
7
|
+
gem "rake", "~> 0.9.2.2"
|
8
|
+
gem "jeweler", "~> 1.8.3"
|
9
|
+
gem "rspec", "~> 2.9.0"
|
10
|
+
gem "webmock", "~> 1.8.6"
|
11
11
|
end
|
data/jammed.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "jammed"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Sean Lerner", "Rob Young", "Mike Chlipala"]
|
12
|
-
s.date = "2012-05-
|
12
|
+
s.date = "2012-05-15"
|
13
13
|
s.description = "Jammed wraps the This Is My Jam API. More information about the This Is My Jam API can be found on their website (http://www.thisismyjam.com/developers)."
|
14
14
|
s.email = ["seanslerner@gmail.com"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -89,27 +89,27 @@ Gem::Specification.new do |s|
|
|
89
89
|
s.specification_version = 3
|
90
90
|
|
91
91
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
92
|
-
s.add_runtime_dependency(%q<httparty>, ["
|
93
|
-
s.add_runtime_dependency(%q<json>, ["
|
94
|
-
s.add_development_dependency(%q<rake>, ["
|
95
|
-
s.add_development_dependency(%q<jeweler>, ["
|
96
|
-
s.add_development_dependency(%q<rspec>, ["
|
97
|
-
s.add_development_dependency(%q<webmock>, ["
|
92
|
+
s.add_runtime_dependency(%q<httparty>, ["~> 0.8.2"])
|
93
|
+
s.add_runtime_dependency(%q<json>, ["~> 1.7.1"])
|
94
|
+
s.add_development_dependency(%q<rake>, ["~> 0.9.2.2"])
|
95
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
96
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.9.0"])
|
97
|
+
s.add_development_dependency(%q<webmock>, ["~> 1.8.6"])
|
98
98
|
else
|
99
|
-
s.add_dependency(%q<httparty>, ["
|
100
|
-
s.add_dependency(%q<json>, ["
|
101
|
-
s.add_dependency(%q<rake>, ["
|
102
|
-
s.add_dependency(%q<jeweler>, ["
|
103
|
-
s.add_dependency(%q<rspec>, ["
|
104
|
-
s.add_dependency(%q<webmock>, ["
|
99
|
+
s.add_dependency(%q<httparty>, ["~> 0.8.2"])
|
100
|
+
s.add_dependency(%q<json>, ["~> 1.7.1"])
|
101
|
+
s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
|
102
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
103
|
+
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
104
|
+
s.add_dependency(%q<webmock>, ["~> 1.8.6"])
|
105
105
|
end
|
106
106
|
else
|
107
|
-
s.add_dependency(%q<httparty>, ["
|
108
|
-
s.add_dependency(%q<json>, ["
|
109
|
-
s.add_dependency(%q<rake>, ["
|
110
|
-
s.add_dependency(%q<jeweler>, ["
|
111
|
-
s.add_dependency(%q<rspec>, ["
|
112
|
-
s.add_dependency(%q<webmock>, ["
|
107
|
+
s.add_dependency(%q<httparty>, ["~> 0.8.2"])
|
108
|
+
s.add_dependency(%q<json>, ["~> 1.7.1"])
|
109
|
+
s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
|
110
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
111
|
+
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
112
|
+
s.add_dependency(%q<webmock>, ["~> 1.8.6"])
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
data/lib/jammed/api.rb
CHANGED
@@ -14,7 +14,7 @@ module Jammed
|
|
14
14
|
#
|
15
15
|
# Jammed::API.request(:get, /IFTFOM/followers.json, :query => {:key => 'api_key', :order => 'affinity'})
|
16
16
|
def self.request(method, path, opts={})
|
17
|
-
base_uri = 'http://api.thisismyjam.com/1'
|
17
|
+
base_uri = opts[:https] ? 'https://api.thisismyjam.com/1' : 'http://api.thisismyjam.com/1'
|
18
18
|
|
19
19
|
params = {}
|
20
20
|
params[:path] = path
|
data/lib/jammed/base.rb
CHANGED
@@ -3,11 +3,12 @@ module Jammed
|
|
3
3
|
class Base
|
4
4
|
|
5
5
|
#Stores the API key to be used for all method calls on the Jammed::Base object
|
6
|
-
attr_reader :api_key
|
6
|
+
attr_reader :api_key, :https
|
7
7
|
|
8
8
|
#Sets the API key + any options
|
9
9
|
def initialize(api_key, opts={})
|
10
10
|
@api_key = api_key
|
11
|
+
@https = opts[:https] ? opts[:https] : false
|
11
12
|
end
|
12
13
|
|
13
14
|
# Calls Jammed::Followers
|
@@ -26,6 +27,7 @@ module Jammed
|
|
26
27
|
# jammed = Jammed.new('08972935872035')
|
27
28
|
# jammed.followers('IFTFOM', :order => :date)
|
28
29
|
def followers(username, opts={})
|
30
|
+
opts = opts.merge({:https => @https})
|
29
31
|
Followers.followers(username, @api_key, opts)
|
30
32
|
end
|
31
33
|
|
@@ -45,6 +47,7 @@ module Jammed
|
|
45
47
|
# jammed = Jammed.new('08972935872035')
|
46
48
|
# jammed.following('IFTFOM', :order => :date)
|
47
49
|
def following(username, opts={})
|
50
|
+
opts = opts.merge({:https => @https})
|
48
51
|
Following.following(username, @api_key, opts)
|
49
52
|
end
|
50
53
|
|
@@ -64,6 +67,7 @@ module Jammed
|
|
64
67
|
# jammed = Jammed.new('08972935872035')
|
65
68
|
# jammed.jams('IFTFOM', :show => :current)
|
66
69
|
def jams(username, opts={})
|
70
|
+
opts = opts.merge({:https => @https})
|
67
71
|
Jams.jams(username, @api_key, opts)
|
68
72
|
end
|
69
73
|
|
@@ -83,6 +87,7 @@ module Jammed
|
|
83
87
|
# jammed = Jammed.new('08972935872035')
|
84
88
|
# jammed.likes('IFTFOM', :show => :current)
|
85
89
|
def likes(username, opts={})
|
90
|
+
opts = opts.merge({:https => @https})
|
86
91
|
Likes.likes(username, @api_key, opts)
|
87
92
|
end
|
88
93
|
|
@@ -93,7 +98,7 @@ module Jammed
|
|
93
98
|
# jammed = Jammed.new('08972935872035')
|
94
99
|
# jammed.popular_jams
|
95
100
|
def popular_jams
|
96
|
-
PopularJams.popular_jams(@api_key)
|
101
|
+
PopularJams.popular_jams(@api_key, @https)
|
97
102
|
end
|
98
103
|
|
99
104
|
# Calls Jammed::Person.profile
|
@@ -107,7 +112,7 @@ module Jammed
|
|
107
112
|
# jammed = Jammed.new('08972935872035')
|
108
113
|
# jammed.profile('IFTFOM')
|
109
114
|
def profile(username)
|
110
|
-
Person.profile(username, @api_key)
|
115
|
+
Person.profile(username, @api_key, @https)
|
111
116
|
end
|
112
117
|
|
113
118
|
# Calls Jammed::RandomJam.jam
|
@@ -117,7 +122,7 @@ module Jammed
|
|
117
122
|
# jammed = Jammed.new('08972935872035')
|
118
123
|
# jammed.random
|
119
124
|
def random
|
120
|
-
RandomJam.jam(@api_key)
|
125
|
+
RandomJam.jam(@api_key, @https)
|
121
126
|
end
|
122
127
|
|
123
128
|
# Calls Jammed::PeopleSearch.search_name
|
@@ -131,7 +136,7 @@ module Jammed
|
|
131
136
|
# jammed = Jammed.new('08972935872035')
|
132
137
|
# jammed.search_name('IFTFOM')
|
133
138
|
def search_name(name)
|
134
|
-
PeopleSearch.search_name(name, @api_key)
|
139
|
+
PeopleSearch.search_name(name, @api_key, @https)
|
135
140
|
end
|
136
141
|
|
137
142
|
# Calls Jammed::PeopleSearch.search_artist
|
@@ -145,7 +150,7 @@ module Jammed
|
|
145
150
|
# jammed = Jammed.new('08972935872035')
|
146
151
|
# jammed.search_artist('IFTFOM')
|
147
152
|
def search_artist(artist)
|
148
|
-
PeopleSearch.search_artist(artist, @api_key)
|
153
|
+
PeopleSearch.search_artist(artist, @api_key, @https)
|
149
154
|
end
|
150
155
|
|
151
156
|
# Calls Jammed::PeopleSearch.search_track
|
@@ -160,7 +165,7 @@ module Jammed
|
|
160
165
|
# jammed = Jammed.new('08972935872035')
|
161
166
|
# jammed.search_track('IFTFOM')
|
162
167
|
def search_track(artist, track)
|
163
|
-
PeopleSearch.search_track(artist, track, @api_key)
|
168
|
+
PeopleSearch.search_track(artist, track, @api_key, @https)
|
164
169
|
end
|
165
170
|
|
166
171
|
# Calls Jammed::SuggestedPeople.people
|
@@ -170,7 +175,7 @@ module Jammed
|
|
170
175
|
# jammed = Jammed.new('08972935872035')
|
171
176
|
# jammed.suggest_people
|
172
177
|
def suggested_people
|
173
|
-
SuggestedPeople.people(@api_key)
|
178
|
+
SuggestedPeople.people(@api_key, @https)
|
174
179
|
end
|
175
180
|
|
176
181
|
# Calls Jammed::User.new and creates a new User object for interacting with user specific data. It provides methods for interacting with user-specific data.
|
@@ -186,7 +191,7 @@ module Jammed
|
|
186
191
|
# ift.profile
|
187
192
|
# ift.jams(:show => :past)
|
188
193
|
def user(username)
|
189
|
-
User.new(username, @api_key)
|
194
|
+
User.new(username, @api_key, @https)
|
190
195
|
end
|
191
196
|
end
|
192
197
|
end
|
data/lib/jammed/followers.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides methods for calling API endpoint /follower.json?
|
3
5
|
class Followers < API
|
@@ -20,17 +22,17 @@ module Jammed #:nodoc:
|
|
20
22
|
def self.followers(username, api_key, opts={})
|
21
23
|
case(opts[:order])
|
22
24
|
when nil
|
23
|
-
response = request(:get, "/#{username}/followers.json",
|
24
|
-
:query => {:key => api_key})
|
25
|
+
response = request(:get, "/#{username}/followers.json", {:https => opts[:https],
|
26
|
+
:query => {:key => api_key}})
|
25
27
|
when :date
|
26
|
-
response = request(:get, "/#{username}/followers.json",
|
27
|
-
:query => {:order => 'followedDate', :key => api_key})
|
28
|
+
response = request(:get, "/#{username}/followers.json", {:https => opts[:https],
|
29
|
+
:query => {:order => 'followedDate', :key => api_key}})
|
28
30
|
when :affinity
|
29
|
-
response = request(:get, "/#{username}/followers.json",
|
30
|
-
:query => {:order => 'affinity', :key => api_key})
|
31
|
+
response = request(:get, "/#{username}/followers.json", {:https => opts[:https],
|
32
|
+
:query => {:order => 'affinity', :key => api_key}})
|
31
33
|
when :alpha
|
32
|
-
response = request(:get, "/#{username}/followers.json",
|
33
|
-
:query => {:order => 'name', :key => api_key})
|
34
|
+
response = request(:get, "/#{username}/followers.json", {:https => opts[:https],
|
35
|
+
:query => {:order => 'name', :key => api_key}})
|
34
36
|
else
|
35
37
|
return "Cannot order Followers by #{opts[:order]}"
|
36
38
|
end
|
data/lib/jammed/following.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides methods for calling API endpoint /following.json?
|
3
5
|
class Following < API
|
@@ -20,17 +22,17 @@ module Jammed #:nodoc:
|
|
20
22
|
def self.following(username, api_key, opts={})
|
21
23
|
case(opts[:order])
|
22
24
|
when nil
|
23
|
-
response = request(:get, "/#{username}/following.json",
|
24
|
-
:query => {:key => api_key})
|
25
|
+
response = request(:get, "/#{username}/following.json", {:https => opts[:https],
|
26
|
+
:query => {:key => api_key}})
|
25
27
|
when :date
|
26
|
-
response = request(:get, "/#{username}/following.json",
|
27
|
-
:query => {:order => 'followedDate', :key => api_key})
|
28
|
+
response = request(:get, "/#{username}/following.json", {:https => opts[:https],
|
29
|
+
:query => {:order => 'followedDate', :key => api_key}})
|
28
30
|
when :affinity
|
29
|
-
response = request(:get, "/#{username}/following.json",
|
30
|
-
:query => {:order => 'affinity', :key => api_key})
|
31
|
+
response = request(:get, "/#{username}/following.json", {:https => opts[:https],
|
32
|
+
:query => {:order => 'affinity', :key => api_key}})
|
31
33
|
when :alpha
|
32
|
-
response = request(:get, "/#{username}/following.json",
|
33
|
-
:query => {:order => 'name', :key => api_key})
|
34
|
+
response = request(:get, "/#{username}/following.json", {:https => opts[:https],
|
35
|
+
:query => {:order => 'name', :key => api_key}})
|
34
36
|
else
|
35
37
|
return "Cannot order Followings by #{opts[:order]}"
|
36
38
|
end
|
data/lib/jammed/jams.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides methods for calling API endpoint /jams.json?
|
3
5
|
class Jams < API
|
@@ -20,16 +22,16 @@ module Jammed #:nodoc:
|
|
20
22
|
def self.jams(username, api_key, opts={})
|
21
23
|
case(opts[:show])
|
22
24
|
when nil
|
23
|
-
response = request(:get, "/#{username}/jams.json",
|
24
|
-
:query => {:key => api_key})
|
25
|
+
response = request(:get, "/#{username}/jams.json", {:https => opts[:https],
|
26
|
+
:query => {:key => api_key}})
|
25
27
|
JSON.parse(response.body)['jams']
|
26
28
|
when :past
|
27
|
-
response = request(:get, "/#{username}/jams.json",
|
28
|
-
:query => {:show => 'past', :key => api_key})
|
29
|
+
response = request(:get, "/#{username}/jams.json", {:https => opts[:https],
|
30
|
+
:query => {:show => 'past', :key => api_key}})
|
29
31
|
JSON.parse(response.body)['jams']
|
30
32
|
when :current
|
31
|
-
response = request(:get, "/#{username}/jams.json",
|
32
|
-
:query => {:key => api_key})
|
33
|
+
response = request(:get, "/#{username}/jams.json", {:https => opts[:https],
|
34
|
+
:query => {:key => api_key}})
|
33
35
|
jams = JSON.parse(response.body)['jams'][0]
|
34
36
|
jams['current'] ? jams : "No Current Jam"
|
35
37
|
end
|
data/lib/jammed/likes.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides methods for calling API endpoint /likes.json?
|
3
5
|
class Likes < API
|
@@ -20,14 +22,14 @@ module Jammed #:nodoc:
|
|
20
22
|
def self.likes(username, api_key, opts={})
|
21
23
|
case(opts[:show])
|
22
24
|
when nil
|
23
|
-
response = request(:get, "/#{username}/likes.json",
|
24
|
-
:query => {:key => api_key})
|
25
|
+
response = request(:get, "/#{username}/likes.json", {:https => opts[:https],
|
26
|
+
:query => {:key => api_key}})
|
25
27
|
when :current
|
26
|
-
response = request(:get, "/#{username}/likes.json",
|
27
|
-
:query => {:show => 'current', :key => api_key})
|
28
|
+
response = request(:get, "/#{username}/likes.json", {:https => opts[:https],
|
29
|
+
:query => {:show => 'current', :key => api_key}})
|
28
30
|
when :past
|
29
|
-
response = request(:get, "/#{username}/likes.json",
|
30
|
-
:query => {:show => 'past', :key => api_key})
|
31
|
+
response = request(:get, "/#{username}/likes.json", {:https => opts[:https],
|
32
|
+
:query => {:show => 'past', :key => api_key}})
|
31
33
|
end
|
32
34
|
JSON.parse(response.body)['jams']
|
33
35
|
end
|
data/lib/jammed/people_search.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative 'api'
|
1
2
|
require 'uri'
|
2
3
|
|
3
4
|
module Jammed #:nodoc:
|
@@ -14,9 +15,9 @@ module Jammed #:nodoc:
|
|
14
15
|
# ==== Examples
|
15
16
|
#
|
16
17
|
# Jammed::PeopleSearch.search_name('IFTFOM', '08972935872035')
|
17
|
-
def self.search_name(name, api_key)
|
18
|
-
response = request(:get, "/search/person.json",
|
19
|
-
:query => {:by => 'name', :q => "#{name.split.join('+')}", :key => api_key})
|
18
|
+
def self.search_name(name, api_key, https=false)
|
19
|
+
response = request(:get, "/search/person.json", {:https => https,
|
20
|
+
:query => {:by => 'name', :q => "#{name.split.join('+')}", :key => api_key}})
|
20
21
|
JSON.parse(response.body)['people']
|
21
22
|
end
|
22
23
|
|
@@ -30,9 +31,9 @@ module Jammed #:nodoc:
|
|
30
31
|
# ==== Examples
|
31
32
|
#
|
32
33
|
# Jammed::PeopleSearch.search_artist('beach boys', '08972935872035')
|
33
|
-
def self.search_artist(artist, api_key)
|
34
|
-
response = request(:get, "/search/person.json",
|
35
|
-
:query => {:by => 'artist', :q => "#{artist.split.join('+')}", :key => api_key})
|
34
|
+
def self.search_artist(artist, api_key, https=false)
|
35
|
+
response = request(:get, "/search/person.json", {:https => https,
|
36
|
+
:query => {:by => 'artist', :q => "#{artist.split.join('+')}", :key => api_key}})
|
36
37
|
JSON.parse(response.body)['people']
|
37
38
|
end
|
38
39
|
|
@@ -47,11 +48,11 @@ module Jammed #:nodoc:
|
|
47
48
|
# ==== Examples
|
48
49
|
#
|
49
50
|
# Jammed::PeopleSearch.search_track('beach boys', 'good vibrations', '08972935872035')
|
50
|
-
def self.search_track(artist, track, api_key)
|
51
|
-
response = request(:get, "/search/person.json",
|
51
|
+
def self.search_track(artist, track, api_key, https=false)
|
52
|
+
response = request(:get, "/search/person.json", {:https => https,
|
52
53
|
:query => {:by => 'track',
|
53
54
|
:q => "#{artist.split.join('+')}|#{track.split.join('+')}",
|
54
|
-
:key => api_key})
|
55
|
+
:key => api_key}})
|
55
56
|
JSON.parse(response.body)['people']
|
56
57
|
end
|
57
58
|
|
data/lib/jammed/person.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides methods for calling API endpoint /username.json? and accessing user specific data
|
3
5
|
class Person < API
|
@@ -6,8 +8,9 @@ module Jammed #:nodoc:
|
|
6
8
|
# ==== Examples
|
7
9
|
#
|
8
10
|
# Jammed::Person.profile('IFTFOM', '08972935872035') #returns IFTFOM's profile data
|
9
|
-
def self.profile(username, api_key)
|
10
|
-
response = request(:get, "/#{username}.json",
|
11
|
+
def self.profile(username, api_key, https=false)
|
12
|
+
response = request(:get, "/#{username}.json", {:https => https,
|
13
|
+
:query => {:key => api_key}})
|
11
14
|
JSON.parse(response.body)["person"]
|
12
15
|
end
|
13
16
|
|
data/lib/jammed/popular_jams.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides method for calling API endpoint /popular.json?
|
3
5
|
class PopularJams < API
|
@@ -6,8 +8,8 @@ module Jammed #:nodoc:
|
|
6
8
|
# ==== Examples
|
7
9
|
#
|
8
10
|
# Jammed::PopularJams.popular_jams('08972935872035') #returns a sample of popular jams
|
9
|
-
def self.popular_jams(api_key)
|
10
|
-
response = request(:get, "/popular.json", :query => {:key => api_key})
|
11
|
+
def self.popular_jams(api_key, https=false)
|
12
|
+
response = request(:get, "/popular.json", {:https => https, :query => {:key => api_key}})
|
11
13
|
JSON.parse(response.body)['jams']
|
12
14
|
end
|
13
15
|
end
|
data/lib/jammed/random.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides method for calling API endpoint /random.json?
|
3
5
|
class RandomJam < API
|
@@ -6,8 +8,9 @@ module Jammed #:nodoc:
|
|
6
8
|
# ==== Examples
|
7
9
|
#
|
8
10
|
# Jammed::RandomJam.jam('08972935872035') #returns a random jam + the profile of the user
|
9
|
-
def self.jam(api_key)
|
10
|
-
response = request(:get, "/random.json",
|
11
|
+
def self.jam(api_key, https=false)
|
12
|
+
response = request(:get, "/random.json", {:https => https,
|
13
|
+
:query => {:key => api_key}})
|
11
14
|
JSON.parse(response.body)
|
12
15
|
end
|
13
16
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'api'
|
2
|
+
|
1
3
|
module Jammed #:nodoc:
|
2
4
|
# Provides method for calling API endpoint /suggestedPeople.json?
|
3
5
|
class SuggestedPeople < API
|
@@ -6,8 +8,9 @@ module Jammed #:nodoc:
|
|
6
8
|
# ==== Examples
|
7
9
|
#
|
8
10
|
# Jammed::SuggestedPeople.people('08972935872035') #returns a list of users with many followers/likes
|
9
|
-
def self.people(api_key)
|
10
|
-
response = request(:get, "/suggestedPeople.json",
|
11
|
+
def self.people(api_key, https=false)
|
12
|
+
response = request(:get, "/suggestedPeople.json", {:https => https,
|
13
|
+
:query => {:key => api_key}})
|
11
14
|
JSON.parse(response.body)['people']
|
12
15
|
end
|
13
16
|
end
|
data/lib/jammed/user.rb
CHANGED
@@ -14,12 +14,14 @@ module Jammed #:nodoc:
|
|
14
14
|
# ==== Examples
|
15
15
|
#
|
16
16
|
# iftfom = Jammed::User.new('IFTFOM', '08972935872035')
|
17
|
-
def initialize(username, api_key)
|
17
|
+
def initialize(username, api_key, https=false)
|
18
18
|
@username = username
|
19
19
|
@api_key = api_key
|
20
|
+
@https = https
|
20
21
|
end
|
21
22
|
|
22
23
|
def followers(opts={})
|
24
|
+
opts = opts.merge({:https => @https})
|
23
25
|
@followers ||= Jammed::Followers.followers(@username, @api_key, opts)
|
24
26
|
end
|
25
27
|
|
@@ -39,10 +41,12 @@ module Jammed #:nodoc:
|
|
39
41
|
# user.followers #returns all followers of IFTFOM
|
40
42
|
# user.followers(:order => :date) #reutrns IFTFOM's followers ordered by date
|
41
43
|
def followers!(opts={})
|
44
|
+
opts = opts.merge({:https => @https})
|
42
45
|
@followers = Jammed::Followers.followers(@username, @api_key, opts)
|
43
46
|
end
|
44
47
|
|
45
48
|
def following(opts={})
|
49
|
+
opts = opts.merge({:https => @https})
|
46
50
|
@following ||= Jammed::Following.following(@username, @api_key, opts)
|
47
51
|
end
|
48
52
|
|
@@ -62,10 +66,12 @@ module Jammed #:nodoc:
|
|
62
66
|
# user.following #returns all followings of IFTFOM
|
63
67
|
# user.following(:order => :date) #returns IFTFOM's followings ordered by date
|
64
68
|
def following!(opts={})
|
69
|
+
opts = opts.merge({:https => @https})
|
65
70
|
@following = Jammed::Following.following(@username, @api_key, opts)
|
66
71
|
end
|
67
72
|
|
68
73
|
def jams(opts={})
|
74
|
+
opts = opts.merge({:https => @https})
|
69
75
|
@jams ||= Jammed::Jams.jams(@username, @api_key, opts)
|
70
76
|
end
|
71
77
|
|
@@ -85,10 +91,12 @@ module Jammed #:nodoc:
|
|
85
91
|
# user.jams #returns all jams of IFTFOM
|
86
92
|
# user.jams(:show => :past) #returns IFTFOM's past jams
|
87
93
|
def jams!(opts={})
|
94
|
+
opts = opts.merge({:https => @https})
|
88
95
|
@jams = Jammed::Jams.jams(@username, @api_key, opts)
|
89
96
|
end
|
90
97
|
|
91
98
|
def likes(opts={})
|
99
|
+
opts = opts.merge({:https => @https})
|
92
100
|
@likes ||= Jammed::Likes.likes(@username, @api_key, opts)
|
93
101
|
end
|
94
102
|
|
@@ -108,11 +116,12 @@ module Jammed #:nodoc:
|
|
108
116
|
# user.likes #returns all likes of IFTFOM
|
109
117
|
# user.likes(:show => :past) #returns IFTFOM's past likes
|
110
118
|
def likes!(opts={})
|
119
|
+
opts = opts.merge({:https => @https})
|
111
120
|
@likes = Jammed::Likes.likes(@username, @api_key, opts)
|
112
121
|
end
|
113
122
|
|
114
123
|
def profile
|
115
|
-
@profile ||= Jammed::Person.profile(@username, @api_key)
|
124
|
+
@profile ||= Jammed::Person.profile(@username, @api_key, @https)
|
116
125
|
end
|
117
126
|
|
118
127
|
# Clears cached Person data with a fresh call to Jammed::Person
|
@@ -122,7 +131,7 @@ module Jammed #:nodoc:
|
|
122
131
|
# user = Jammed::User.new('IFTFOM', '08972935872035')
|
123
132
|
# user.profile #returns entire profile of IFTFOM
|
124
133
|
def profile!
|
125
|
-
@profile = Jammed::Person.profile(@username, @api_key)
|
134
|
+
@profile = Jammed::Person.profile(@username, @api_key, @https)
|
126
135
|
end
|
127
136
|
|
128
137
|
# Checks user's profile for attribute and returns value if attribute key is found.
|
data/lib/jammed/version.rb
CHANGED
data/lib/jammed.rb
CHANGED
@@ -11,11 +11,15 @@ module Jammed
|
|
11
11
|
# ==== Attributes
|
12
12
|
#
|
13
13
|
# * +api_key+ - Sets the API key to use for all calls made with object
|
14
|
-
# * +opts+ -Options hash
|
14
|
+
# * +opts+ -Options hash
|
15
|
+
#
|
16
|
+
# ==== Options
|
17
|
+
#
|
18
|
+
# * +:https+ - Toggle use of HTTPS (defaults to false)
|
15
19
|
#
|
16
20
|
# ==== Examples
|
17
21
|
#
|
18
|
-
# jammed = Jammed.new('987bcab01b929eb2c07877b224215c92')
|
22
|
+
# jammed = Jammed.new('987bcab01b929eb2c07877b224215c92', :https => true)
|
19
23
|
def new(api_key='987bcab01b929eb2c07877b224215c92', opts={})
|
20
24
|
Jammed::Base.new(api_key, opts)
|
21
25
|
end
|
data/spec/jammed/api_spec.rb
CHANGED
@@ -14,6 +14,12 @@ module Jammed
|
|
14
14
|
HTTParty.should_receive(:get).and_return(FakeResponse.new(200, 'this'))
|
15
15
|
Jammed::API.request(:get, '/path')
|
16
16
|
end
|
17
|
+
it "can use https" do
|
18
|
+
HTTParty.should_receive(:get).
|
19
|
+
with("https://api.thisismyjam.com/1/path", {:query=>nil, :body=>nil, :format=>:plain, :headers=>{"Accept"=>"application/json", "Content-Type"=>"application/json; charset=utf-8", "User-Agent"=>"Jammed/0.1.1"}}).
|
20
|
+
and_return(FakeResponse.new(200, 'this'))
|
21
|
+
Jammed::API.request(:get, '/path', :https => true)
|
22
|
+
end
|
17
23
|
end
|
18
24
|
end
|
19
25
|
end
|
data/spec/jammed/base_spec.rb
CHANGED
@@ -8,6 +8,14 @@ module Jammed
|
|
8
8
|
let(:user) {'IFTFOM'}
|
9
9
|
|
10
10
|
describe "#initialize" do
|
11
|
+
it "sets @https" do
|
12
|
+
jam = Jammed::Base.new(api_key, :https => true)
|
13
|
+
jam.https.should be true
|
14
|
+
end
|
15
|
+
|
16
|
+
it "defaults @https to false" do
|
17
|
+
jammed.https.should be false
|
18
|
+
end
|
11
19
|
end
|
12
20
|
|
13
21
|
describe "#followers" do
|
@@ -15,6 +23,11 @@ module Jammed
|
|
15
23
|
Jammed::Followers.should_receive(:followers)
|
16
24
|
jammed.followers(user)
|
17
25
|
end
|
26
|
+
|
27
|
+
it "merges @https into opts" do
|
28
|
+
Jammed::Followers.should_receive(:followers).with(user, api_key, {:https => false})
|
29
|
+
jammed.followers(user)
|
30
|
+
end
|
18
31
|
end
|
19
32
|
|
20
33
|
describe "#following" do
|
@@ -89,7 +102,7 @@ module Jammed
|
|
89
102
|
|
90
103
|
describe "#user" do
|
91
104
|
it "calls Jammed::User.new" do
|
92
|
-
Jammed::User.should_receive(:new).with(user, api_key)
|
105
|
+
Jammed::User.should_receive(:new).with(user, api_key, false)
|
93
106
|
jammed.user(user)
|
94
107
|
end
|
95
108
|
end
|
@@ -12,11 +12,11 @@ module Jammed
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "parses the JSON return into an array of Jams" do
|
15
|
-
Jammed::PopularJams.popular_jams(api_key).should be_an_instance_of Array
|
15
|
+
Jammed::PopularJams.popular_jams(api_key, false).should be_an_instance_of Array
|
16
16
|
end
|
17
17
|
|
18
18
|
it "gets popular jams from the api" do
|
19
|
-
Jammed::PopularJams.popular_jams(api_key).should_not be_nil
|
19
|
+
Jammed::PopularJams.popular_jams(api_key, false).should_not be_nil
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/spec/jammed/random_spec.rb
CHANGED
@@ -12,11 +12,11 @@ module Jammed
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "parses the JSON return into a hash" do
|
15
|
-
Jammed::RandomJam.jam(api_key).should be_an_instance_of Hash
|
15
|
+
Jammed::RandomJam.jam(api_key, false).should be_an_instance_of Hash
|
16
16
|
end
|
17
17
|
|
18
18
|
it "gets popular jams from the api" do
|
19
|
-
Jammed::RandomJam.jam(api_key).should_not be_nil
|
19
|
+
Jammed::RandomJam.jam(api_key, false).should_not be_nil
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/spec/jammed/user_spec.rb
CHANGED
@@ -22,7 +22,7 @@ module Jammed
|
|
22
22
|
user.followers
|
23
23
|
end
|
24
24
|
it "sends @username + :order options to Jammed::Followers" do
|
25
|
-
Jammed::Followers.should_receive(:followers).with('IFTFOM', api_key, {:order => :date})
|
25
|
+
Jammed::Followers.should_receive(:followers).with('IFTFOM', api_key, {:order => :date, :https=> false})
|
26
26
|
user.followers(:order => :date)
|
27
27
|
end
|
28
28
|
it "saves followers in @followers" do
|
@@ -56,7 +56,7 @@ module Jammed
|
|
56
56
|
user.following
|
57
57
|
end
|
58
58
|
it "sends @username + :order options to Jammed::Following" do
|
59
|
-
Jammed::Following.should_receive(:following).with('IFTFOM', api_key, {:order => :date})
|
59
|
+
Jammed::Following.should_receive(:following).with('IFTFOM', api_key, {:order => :date, :https=> false})
|
60
60
|
user.following(:order => :date)
|
61
61
|
end
|
62
62
|
it "saves followers in @following" do
|
@@ -89,7 +89,7 @@ module Jammed
|
|
89
89
|
user.jams
|
90
90
|
end
|
91
91
|
it "sends @username + :show options to Jammed::Jams" do
|
92
|
-
Jammed::Jams.should_receive(:jams).with('IFTFOM', api_key, {:show => :past})
|
92
|
+
Jammed::Jams.should_receive(:jams).with('IFTFOM', api_key, {:show => :past, :https=> false})
|
93
93
|
user.jams(:show => :past)
|
94
94
|
end
|
95
95
|
it "saves jams in @jams" do
|
@@ -122,7 +122,7 @@ module Jammed
|
|
122
122
|
user.likes
|
123
123
|
end
|
124
124
|
it "sends @username + :show options to Jammed::Likes" do
|
125
|
-
Jammed::Likes.should_receive(:likes).with('IFTFOM', api_key, {:show => :past})
|
125
|
+
Jammed::Likes.should_receive(:likes).with('IFTFOM', api_key, {:show => :past, :https=> false})
|
126
126
|
user.likes(:show => :past)
|
127
127
|
end
|
128
128
|
it "saves likes in @likes" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jammed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,74 +11,74 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-05-
|
14
|
+
date: 2012-05-15 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
18
|
-
requirement: &
|
18
|
+
requirement: &70267027504900 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.8.2
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70267027504900
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
|
-
requirement: &
|
29
|
+
requirement: &70267027503540 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.7.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70267027503540
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: rake
|
40
|
-
requirement: &
|
40
|
+
requirement: &70267027502640 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
45
|
+
version: 0.9.2.2
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70267027502640
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: jeweler
|
51
|
-
requirement: &
|
51
|
+
requirement: &70267027501520 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 1.8.3
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *70267027501520
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: rspec
|
62
|
-
requirement: &
|
62
|
+
requirement: &70267027500280 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: 2.9.0
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70267027500280
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: webmock
|
73
|
-
requirement: &
|
73
|
+
requirement: &70267027499040 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: 1.8.6
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *70267027499040
|
82
82
|
description: Jammed wraps the This Is My Jam API. More information about the This
|
83
83
|
Is My Jam API can be found on their website (http://www.thisismyjam.com/developers).
|
84
84
|
email:
|
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
164
|
version: '0'
|
165
165
|
segments:
|
166
166
|
- 0
|
167
|
-
hash:
|
167
|
+
hash: -3697197467534343952
|
168
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
169
|
none: false
|
170
170
|
requirements:
|