totter 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +2 -0
- data/Gemfile +5 -5
- data/Rakefile +1 -1
- data/lib/totter/client.rb +4 -1
- data/lib/totter/client/choices.rb +7 -7
- data/lib/totter/client/comments.rb +2 -2
- data/lib/totter/client/decisions.rb +1 -1
- data/lib/totter/client/timelines.rb +6 -6
- data/lib/totter/client/users.rb +1 -1
- data/lib/totter/client/votes.rb +2 -2
- data/lib/totter/transport.rb +1 -1
- data/lib/totter/transport/http.rb +33 -2
- data/lib/totter/version.rb +1 -1
- data/test/support/client_macros.rb +1 -1
- data/test/totter/client/choices_test.rb +5 -5
- data/test/totter/client/decisions_test.rb +5 -5
- data/test/totter/client/timelines_test.rb +1 -1
- data/test/totter/client/users_test.rb +3 -3
- data/test/totter/client/votes_test.rb +2 -2
- data/test/totter/client_test.rb +3 -3
- data/totter.gemspec +1 -1
- metadata +65 -45
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
|
|
3
3
|
# Gem dependencies
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
gem 'rake', group
|
6
|
+
gem 'rake', :group => [:development, :test]
|
7
7
|
|
8
8
|
# Development dependencies
|
9
9
|
group :development do
|
@@ -14,9 +14,9 @@ end
|
|
14
14
|
# Testing dependencies
|
15
15
|
group :test do
|
16
16
|
gem 'minitest'
|
17
|
-
gem '
|
18
|
-
gem 'webmock', require
|
17
|
+
gem 'turn'
|
18
|
+
gem 'webmock', :require => 'webmock/minitest'
|
19
19
|
gem 'vcr'
|
20
|
-
gem 'mocha', require
|
21
|
-
gem 'simplecov', require
|
20
|
+
gem 'mocha', :require => 'mocha/setup'
|
21
|
+
gem 'simplecov', :require => false
|
22
22
|
end
|
data/Rakefile
CHANGED
data/lib/totter/client.rb
CHANGED
@@ -29,7 +29,7 @@ module Totter
|
|
29
29
|
#
|
30
30
|
# @param options [Hash] optionally specify `:access_token`, `:api_scheme`, `:api_host`, `:api_version`, `:client_token`, or `:transport`.
|
31
31
|
def initialize(options = {})
|
32
|
-
options = { access_token
|
32
|
+
options = { :access_token => options } if options.is_a? String
|
33
33
|
|
34
34
|
@access_token = options[:access_token] if options[:access_token]
|
35
35
|
@api_scheme = (options[:api_scheme] or 'https')
|
@@ -65,14 +65,17 @@ module Totter
|
|
65
65
|
@api_scheme == 'https'
|
66
66
|
end
|
67
67
|
|
68
|
+
# Turns on stubbing. When called, all HTTP API calls will return an empty response
|
68
69
|
def self.stub!
|
69
70
|
@@stubbed = true
|
70
71
|
end
|
71
72
|
|
73
|
+
# Turns off stubing. Once called, HTTP requests will be sent as normal
|
72
74
|
def self.unstub!
|
73
75
|
@@stubbed = false
|
74
76
|
end
|
75
77
|
|
78
|
+
# Returns the current status of HTTP stubbing
|
76
79
|
def self.stubbed?
|
77
80
|
@@stubbed
|
78
81
|
end
|
@@ -32,13 +32,13 @@ module Totter
|
|
32
32
|
raise ArgumentError.new('image_url option is required') unless options[:image_url]
|
33
33
|
|
34
34
|
data = {
|
35
|
-
choice
|
36
|
-
type
|
37
|
-
image_url
|
38
|
-
subject
|
39
|
-
meta
|
40
|
-
link_url
|
41
|
-
link_title
|
35
|
+
:choice => {
|
36
|
+
:type => 'image',
|
37
|
+
:image_url => options[:image_url],
|
38
|
+
:subject => options[:subject],
|
39
|
+
:meta => {
|
40
|
+
:link_url => options[:link_url],
|
41
|
+
:link_title => options[:link_title]
|
42
42
|
}
|
43
43
|
}
|
44
44
|
}
|
@@ -23,8 +23,8 @@ module Totter
|
|
23
23
|
# Totter.create_comment(1, 1, 'I love boots!')
|
24
24
|
def create_comment(user_id, decision_id, message)
|
25
25
|
options = {
|
26
|
-
comment
|
27
|
-
message
|
26
|
+
:comment => {
|
27
|
+
:message => message
|
28
28
|
}
|
29
29
|
}
|
30
30
|
post("users/#{user_id}/decisions/#{decision_id}/comments", options).body
|
@@ -37,7 +37,7 @@ module Totter
|
|
37
37
|
# Totter.publish_decision(1, 1, question: 'Why is the sky blue?')
|
38
38
|
def publish_decision(user_id, decision_id, options = {})
|
39
39
|
decision_options = {
|
40
|
-
decision
|
40
|
+
:decision => options
|
41
41
|
}
|
42
42
|
|
43
43
|
post("users/#{user_id}/decisions/#{decision_id}/publish", decision_options).body
|
@@ -4,7 +4,7 @@ module Totter
|
|
4
4
|
module Timelines
|
5
5
|
# Default options sent with every timeline request unless otherwise specified.
|
6
6
|
DEFAULT_TIMELINE_OPTIONS = {
|
7
|
-
limit
|
7
|
+
:limit => 20
|
8
8
|
}
|
9
9
|
|
10
10
|
# Get recent decisions from the global timeline.
|
@@ -31,7 +31,7 @@ module Totter
|
|
31
31
|
# @example
|
32
32
|
# Totter.global_timeline(limit: 20, since: '1,15')
|
33
33
|
def hashtag_timeline(hashtag, options = DEFAULT_TIMELINE_OPTIONS)
|
34
|
-
format_timeline_result get('timelines/global', options.merge({hashtag
|
34
|
+
format_timeline_result get('timelines/global', options.merge({:hashtag => hashtag}))
|
35
35
|
end
|
36
36
|
|
37
37
|
# Get recent decisions from a sticker timeline
|
@@ -45,7 +45,7 @@ module Totter
|
|
45
45
|
# @example
|
46
46
|
# Totter.global_timeline(limit: 20, since: '1,15')
|
47
47
|
def sticker_timeline(sticker, options = DEFAULT_TIMELINE_OPTIONS)
|
48
|
-
format_timeline_result get('timelines/global', options.merge({sticker
|
48
|
+
format_timeline_result get('timelines/global', options.merge({:sticker => sticker}))
|
49
49
|
end
|
50
50
|
|
51
51
|
# Search for published items
|
@@ -59,7 +59,7 @@ module Totter
|
|
59
59
|
# @example
|
60
60
|
# Totter.global_timeline(limit: 20, since: '1,15')
|
61
61
|
def search_timeline(query, options = DEFAULT_TIMELINE_OPTIONS)
|
62
|
-
format_timeline_result get('timelines/search', options.merge({query
|
62
|
+
format_timeline_result get('timelines/search', options.merge({:query => query}))
|
63
63
|
end
|
64
64
|
|
65
65
|
# Get recent decisions from the flagged-for-review timeline
|
@@ -106,10 +106,10 @@ module Totter
|
|
106
106
|
format_timeline_result get("users/#{user_id}/timelines/friends", options)
|
107
107
|
end
|
108
108
|
|
109
|
-
|
109
|
+
private
|
110
110
|
|
111
111
|
def format_timeline_result(http_result)
|
112
|
-
Hashie::Mash.new(items
|
112
|
+
Hashie::Mash.new(:items => http_result.body, :pusher_channel => http_result.headers['x-pusher-channel'])
|
113
113
|
end
|
114
114
|
end
|
115
115
|
end
|
data/lib/totter/client/users.rb
CHANGED
@@ -41,7 +41,7 @@ module Totter
|
|
41
41
|
# @option preferences [Boolean] :notification_following Notify when other_user starts follwing user
|
42
42
|
def update_me(options = {}, preferences = {})
|
43
43
|
data = {
|
44
|
-
user
|
44
|
+
:user => options.merge({:preferences => preferences})
|
45
45
|
}
|
46
46
|
put("me", data).body
|
47
47
|
end
|
data/lib/totter/client/votes.rb
CHANGED
@@ -13,10 +13,10 @@ module Totter
|
|
13
13
|
raise UniqueIDRequired unless unique_id or self.authenticated?
|
14
14
|
|
15
15
|
path = "users/#{decision_user_id}/decisions/#{decision_id}/votes"
|
16
|
-
params = { choice_id
|
16
|
+
params = { :choice_id => choice_id, :unique_id => unique_id }
|
17
17
|
|
18
18
|
slug = options[:invitation_slug]
|
19
|
-
params[:invitation] = { slug
|
19
|
+
params[:invitation] = { :slug => slug } if slug
|
20
20
|
|
21
21
|
post(path, params).body
|
22
22
|
end
|
data/lib/totter/transport.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
module Totter
|
2
3
|
module Transport
|
3
4
|
# Default HTTP API transport adapter
|
@@ -25,7 +26,7 @@ module Totter
|
|
25
26
|
# if the request requires parameters in the query string, merge them in
|
26
27
|
if params and !can_post_data?(method)
|
27
28
|
query_values = uri.query ? URI.decode_www_form(uri.query).inject({}) {|h,(k,v)| h[k]=v; h} : {}
|
28
|
-
uri.query =
|
29
|
+
uri.query = to_url_params((query_values || {}).merge(params))
|
29
30
|
end
|
30
31
|
|
31
32
|
# Build request
|
@@ -62,6 +63,27 @@ module Totter
|
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
66
|
+
def to_url_params(hash)
|
67
|
+
params = []
|
68
|
+
hash.each_pair do |key, value|
|
69
|
+
params << param_for(key, value).flatten
|
70
|
+
end
|
71
|
+
params.sort.join('&')
|
72
|
+
end
|
73
|
+
|
74
|
+
def param_for(key, value, parent = nil)
|
75
|
+
if value.is_a?(Hash)
|
76
|
+
params = []
|
77
|
+
value.each_pair do |value_key, value_value|
|
78
|
+
value_parent = parent ? parent + "[#{key}]" : key.to_s
|
79
|
+
params << param_for(value_key, value_value, value_parent)
|
80
|
+
end
|
81
|
+
params
|
82
|
+
else
|
83
|
+
["#{parent ? parent + "[#{key}]" : key.to_s}=#{CGI::escape(value.to_s)}"]
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
65
87
|
def handle_error(response)
|
66
88
|
# Find error or return
|
67
89
|
return unless error = Totter::ERROR_MAP[response.code.to_i]
|
@@ -78,7 +100,7 @@ module Totter
|
|
78
100
|
end
|
79
101
|
|
80
102
|
def json_request(*args)
|
81
|
-
return Response.new(Hashie::Mash.new(body
|
103
|
+
return Response.new(Hashie::Mash.new(:body => '{}', :headers => [])) if Totter::Client.stubbed?
|
82
104
|
|
83
105
|
# Perform request
|
84
106
|
Response.new(request(*args))
|
@@ -99,9 +121,15 @@ module Totter
|
|
99
121
|
end
|
100
122
|
end
|
101
123
|
|
124
|
+
# Response class responsible for deserializing API calls
|
125
|
+
# @attr [Object] body The parsed response
|
126
|
+
# @attr [Hash] headers HTTP headers returned as part of the response
|
102
127
|
class Response
|
103
128
|
attr_accessor :body, :headers
|
104
129
|
|
130
|
+
# Initializes a new result
|
131
|
+
#
|
132
|
+
# @param http_response [Net::HTTPResponse] the raw response to parse
|
105
133
|
def initialize(http_response)
|
106
134
|
@headers = parse_headers(http_response.to_hash)
|
107
135
|
@body = parse_body(http_response.body)
|
@@ -109,13 +137,16 @@ module Totter
|
|
109
137
|
|
110
138
|
private
|
111
139
|
|
140
|
+
# Parses raw headers in to a reasonable hash
|
112
141
|
def parse_headers(raw_headers)
|
142
|
+
# raw headers from net_http have an array for each result. Flatten them out.
|
113
143
|
raw_headers.inject({}) do |remainder, (k, v)|
|
114
144
|
remainder[k] = [v].flatten.first
|
115
145
|
remainder
|
116
146
|
end
|
117
147
|
end
|
118
148
|
|
149
|
+
# Parses the raw body in to a Hashie::Mash object, an array of Hashie::Mashes, or, if all else fails, returns a hash.
|
119
150
|
def parse_body(body)
|
120
151
|
# Parse JSON
|
121
152
|
object = MultiJson.load(body)
|
data/lib/totter/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module ClientMacros
|
2
2
|
def local_client
|
3
|
-
client = Totter::Client.new(access_token
|
3
|
+
client = Totter::Client.new(:access_token => '9774e653f7b3c1de5f21b61adc08ba24', :api_host => 'localhost:5000', :api_scheme => 'http')
|
4
4
|
end
|
5
5
|
end
|
@@ -12,11 +12,11 @@ class ChoicesTest < Totter::TestCase
|
|
12
12
|
def test_create_choice_for_image
|
13
13
|
VCR.use_cassette 'choices/create_for_image' do
|
14
14
|
client = local_client
|
15
|
-
|
16
|
-
image_url
|
17
|
-
subject
|
18
|
-
link_url
|
19
|
-
link_title
|
15
|
+
data = {
|
16
|
+
:image_url => 'http://recess.s3.amazonaws.com/default_avatars/v1/photo_1.png',
|
17
|
+
:subject => 'Test Image',
|
18
|
+
:link_url => 'http://seesaw.co',
|
19
|
+
:link_title => 'Seesaw'
|
20
20
|
}
|
21
21
|
decision = client.create_decision(1)
|
22
22
|
choice = client.create_choice_for_image(decision.user_id, decision.id, data)
|
@@ -23,7 +23,7 @@ class DecisionsTest < Totter::TestCase
|
|
23
23
|
client = local_client
|
24
24
|
decision = client.create_decision(1)
|
25
25
|
choice = create_test_choice(client, decision.user_id, decision.id)
|
26
|
-
result = client.publish_decision(decision.user_id, decision.id, question
|
26
|
+
result = client.publish_decision(decision.user_id, decision.id, :question => 'Why is the sky blue?')
|
27
27
|
assert result.published_at
|
28
28
|
assert 1, result.choices.length
|
29
29
|
end
|
@@ -67,10 +67,10 @@ class DecisionsTest < Totter::TestCase
|
|
67
67
|
|
68
68
|
def create_test_choice(client, user_id, decision_id)
|
69
69
|
data = {
|
70
|
-
image_url
|
71
|
-
subject
|
72
|
-
link_url
|
73
|
-
link_title
|
70
|
+
:image_url => 'http://recess.s3.amazonaws.com/default_avatars/v1/photo_1.png',
|
71
|
+
:subject => 'Test Image',
|
72
|
+
:link_url => 'http://seesaw.co',
|
73
|
+
:link_title => 'Seesaw'
|
74
74
|
}
|
75
75
|
client.create_choice_for_image(user_id, decision_id, data)
|
76
76
|
end
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
class TimelinesTest < Totter::TestCase
|
4
4
|
def test_global
|
5
5
|
VCR.use_cassette 'timelines/global' do
|
6
|
-
response = Totter.global_timeline(limit
|
6
|
+
response = Totter.global_timeline(:limit => 15)
|
7
7
|
assert_equal 15, response.items.length
|
8
8
|
assert_equal 'timeline-global', response.pusher_channel
|
9
9
|
end
|
@@ -20,11 +20,11 @@ class UsersTest < Totter::TestCase
|
|
20
20
|
VCR.use_cassette 'users/update' do
|
21
21
|
client = local_client
|
22
22
|
options = {
|
23
|
-
given_name
|
24
|
-
family_name
|
23
|
+
:given_name => "Aaron",
|
24
|
+
:family_name => 'Gotwalt'
|
25
25
|
}
|
26
26
|
preferences = {
|
27
|
-
notification_comments
|
27
|
+
:notification_comments => false
|
28
28
|
}
|
29
29
|
|
30
30
|
result = client.update_me(options, preferences)
|
@@ -3,12 +3,12 @@ require 'test_helper'
|
|
3
3
|
class VotesTest < Totter::TestCase
|
4
4
|
def test_create_vote
|
5
5
|
VCR.use_cassette 'votes/create' do
|
6
|
-
vote = Totter.create_vote(5, 3276, 5381, unique_id
|
6
|
+
vote = Totter.create_vote(5, 3276, 5381, :unique_id => '021a997')
|
7
7
|
assert_equal 5381, vote.choice_id
|
8
8
|
|
9
9
|
# Prevent duplicates
|
10
10
|
assert_raises Totter::BadRequest do
|
11
|
-
Totter.create_vote(5, 3276, 5381, unique_id
|
11
|
+
Totter.create_vote(5, 3276, 5381, :unique_id => '021a997')
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/test/totter/client_test.rb
CHANGED
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class ClientTest < Totter::TestCase
|
4
4
|
def test_initialization
|
5
|
-
client = Totter::Client.new(access_token
|
5
|
+
client = Totter::Client.new(:access_token => 'asdf1234')
|
6
6
|
assert_equal 'asdf1234', client.access_token
|
7
7
|
assert client.authenticated?
|
8
8
|
|
@@ -17,7 +17,7 @@ class ClientTest < Totter::TestCase
|
|
17
17
|
client = Totter::Client.new
|
18
18
|
assert_equal 'https://api.seesaw.co/v1/', client.base_url
|
19
19
|
|
20
|
-
client = Totter::Client.new(api_scheme
|
20
|
+
client = Totter::Client.new(:api_scheme => 'http', :api_host => 'example.com', :api_version => 42)
|
21
21
|
assert_equal 'http://example.com/v42/', client.base_url
|
22
22
|
end
|
23
23
|
|
@@ -25,7 +25,7 @@ class ClientTest < Totter::TestCase
|
|
25
25
|
client = Totter::Client.new
|
26
26
|
assert client.ssl?
|
27
27
|
|
28
|
-
client = Totter::Client.new(api_scheme
|
28
|
+
client = Totter::Client.new(:api_scheme => 'http')
|
29
29
|
refute client.ssl?
|
30
30
|
end
|
31
31
|
|
data/totter.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ['lib']
|
20
20
|
|
21
|
-
gem.required_ruby_version = '>= 1.
|
21
|
+
gem.required_ruby_version = '>= 1.8.7'
|
22
22
|
gem.add_dependency 'multi_json', '~> 1.5.0'
|
23
23
|
gem.add_dependency 'hashie', '~> 1.2.0'
|
24
24
|
end
|
metadata
CHANGED
@@ -1,59 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: totter
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 2
|
10
|
+
version: 0.3.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Sam Soffes
|
9
14
|
- Aaron Gotwalt
|
10
15
|
- Adam Ryan
|
11
16
|
autorequire:
|
12
17
|
bindir: bin
|
13
18
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
|
20
|
+
date: 2013-02-25 00:00:00 -05:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
17
24
|
name: multi_json
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.5.0
|
24
|
-
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
27
|
none: false
|
28
|
-
requirements:
|
28
|
+
requirements:
|
29
29
|
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 1
|
34
|
+
- 5
|
35
|
+
- 0
|
31
36
|
version: 1.5.0
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
name: hashie
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
|
-
requirements:
|
37
|
-
- - ~>
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 1.2.0
|
40
37
|
type: :runtime
|
38
|
+
version_requirements: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: hashie
|
41
41
|
prerelease: false
|
42
|
-
|
42
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
|
-
requirements:
|
44
|
+
requirements:
|
45
45
|
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
hash: 31
|
48
|
+
segments:
|
49
|
+
- 1
|
50
|
+
- 2
|
51
|
+
- 0
|
47
52
|
version: 1.2.0
|
53
|
+
type: :runtime
|
54
|
+
version_requirements: *id002
|
48
55
|
description: Ruby gem for working with the Seesaw API.
|
49
|
-
email:
|
56
|
+
email:
|
50
57
|
- sam@soff.es
|
51
58
|
- gotwalt@gmail.com
|
52
59
|
- adam.g.ryan@gmail.com
|
53
60
|
executables: []
|
61
|
+
|
54
62
|
extensions: []
|
63
|
+
|
55
64
|
extra_rdoc_files: []
|
56
|
-
|
65
|
+
|
66
|
+
files:
|
57
67
|
- .gitignore
|
58
68
|
- .travis.yml
|
59
69
|
- Contributing.markdown
|
@@ -129,32 +139,43 @@ files:
|
|
129
139
|
- test/totter/client_test.rb
|
130
140
|
- test/totter_test.rb
|
131
141
|
- totter.gemspec
|
142
|
+
has_rdoc: true
|
132
143
|
homepage: https://github.com/seesawco/totter-rb
|
133
|
-
licenses:
|
144
|
+
licenses:
|
134
145
|
- MIT
|
135
146
|
post_install_message:
|
136
147
|
rdoc_options: []
|
137
|
-
|
148
|
+
|
149
|
+
require_paths:
|
138
150
|
- lib
|
139
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
152
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
|
145
|
-
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
hash: 57
|
157
|
+
segments:
|
158
|
+
- 1
|
159
|
+
- 8
|
160
|
+
- 7
|
161
|
+
version: 1.8.7
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
163
|
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
hash: 3
|
168
|
+
segments:
|
169
|
+
- 0
|
170
|
+
version: "0"
|
151
171
|
requirements: []
|
172
|
+
|
152
173
|
rubyforge_project:
|
153
|
-
rubygems_version: 1.
|
174
|
+
rubygems_version: 1.6.2
|
154
175
|
signing_key:
|
155
176
|
specification_version: 3
|
156
177
|
summary: Ruby gem for working with the Seesaw API.
|
157
|
-
test_files:
|
178
|
+
test_files:
|
158
179
|
- test/cassettes/avatars/create.yml
|
159
180
|
- test/cassettes/avatars/destroy.yml
|
160
181
|
- test/cassettes/avatars/index.yml
|
@@ -205,4 +226,3 @@ test_files:
|
|
205
226
|
- test/totter/client/votes_test.rb
|
206
227
|
- test/totter/client_test.rb
|
207
228
|
- test/totter_test.rb
|
208
|
-
has_rdoc:
|