jammed 0.1.1 → 0.1.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/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:
|