snafu 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/Guardfile +10 -0
- data/LICENSE +7 -0
- data/README.textile +65 -0
- data/Rakefile +6 -0
- data/lib/snafu.rb +6 -0
- data/lib/snafu/client.rb +68 -0
- data/lib/snafu/locations.rb +32 -0
- data/lib/snafu/models.rb +4 -0
- data/lib/snafu/models/glitch_image.rb +17 -0
- data/lib/snafu/models/hub.rb +32 -0
- data/lib/snafu/models/location.rb +17 -0
- data/lib/snafu/models/street.rb +41 -0
- data/lib/snafu/version.rb +3 -0
- data/snafu.gemspec +31 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_accept_a_hash_of_POST_arguments.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate_called_with_true.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate_true.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_true.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_raise_a_GlitchAPIError_if_receiving_an_unsucessful_response_from_the_Glitch_API.yml +36 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hub_should_return_a_valid_hub_if_given_a_valid_Hub_ID.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_populated_the_returned_Hub_objects_with_an_id_and_name.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_Hub_objects.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_all_hubs.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_street_should_return_a_complete_street_if_given_a_valid_street_ID.yml +40 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_response_from_Glitch.yml +39 -0
- data/spec/fixtures/vcr_cassettes/Snafu_Models_Street/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml +40 -0
- data/spec/fixtures/vcr_cassettes/calendar_getHoldays/valid_calendar.yml +39 -0
- data/spec/snafu/client_spec.rb +41 -0
- data/spec/snafu/locations_spec.rb +55 -0
- data/spec/snafu/models/glitch_image_spec.rb +36 -0
- data/spec/snafu/models/hub_spec.rb +43 -0
- data/spec/snafu/models/street_spec.rb +81 -0
- data/spec/snafu/models_spec.rb +9 -0
- data/spec/snafu_spec.rb +14 -0
- data/spec/spec_helper.rb +28 -0
- metadata +179 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://api.glitch.com:80/simple/locations.getStreets?hub_id=27
|
6
|
+
body: !!null
|
7
|
+
headers: !!null
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
access-control-allow-credentials:
|
14
|
+
- 'false'
|
15
|
+
access-control-allow-methods:
|
16
|
+
- POST, GET, OPTIONS
|
17
|
+
access-control-allow-origin:
|
18
|
+
- ! '*'
|
19
|
+
access-control-max-age:
|
20
|
+
- '1728000'
|
21
|
+
cache-control:
|
22
|
+
- no-cache="set-cookie"
|
23
|
+
content-type:
|
24
|
+
- text/plain; charset=utf-8
|
25
|
+
date:
|
26
|
+
- Thu, 01 Dec 2011 01:35:07 GMT
|
27
|
+
server:
|
28
|
+
- Apache/2.2.17
|
29
|
+
set-cookie:
|
30
|
+
- AWSELB=F7715B6B10BD5947A6E9DAE19D6F6DD7D91A271FB744B8EE156EEC745EF275A9089C697163F6DA6B492CB3CBE399C5977DF92D1F3093BD75659503606D3AB37D325E15FFCF;PATH=/;MAX-AGE=600
|
31
|
+
content-length:
|
32
|
+
- '329'
|
33
|
+
connection:
|
34
|
+
- Close
|
35
|
+
body: ! '{"ok":1,"hub_id":"27","name":"Ix","streets":{"LM416LNIKVLM1":{"name":"Baby
|
36
|
+
Steppes"},"LM413SQ6LRN58":{"name":"East Spice"},"LM410QQ0CHARO":{"name":"Flipside"},"LM4115NJ46G8M":{"name":"Groddle
|
37
|
+
Ladder"},"LM4109NI2R640":{"name":"Guillermo Gamera Way"},"LM410TMR0S2S1":{"name":"Ruta
|
38
|
+
Asuncion"},"LM413RQ6LRG9N":{"name":"West Spice"}}}'
|
39
|
+
http_version: '1.1'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://api.glitch.com:80/simple/locations.streetInfo?street_tsid=LM416LNIKVLM1
|
6
|
+
body: !!null
|
7
|
+
headers: !!null
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
access-control-allow-credentials:
|
14
|
+
- 'false'
|
15
|
+
access-control-allow-methods:
|
16
|
+
- POST, GET, OPTIONS
|
17
|
+
access-control-allow-origin:
|
18
|
+
- ! '*'
|
19
|
+
access-control-max-age:
|
20
|
+
- '1728000'
|
21
|
+
cache-control:
|
22
|
+
- no-cache="set-cookie"
|
23
|
+
content-type:
|
24
|
+
- text/plain; charset=utf-8
|
25
|
+
date:
|
26
|
+
- Thu, 01 Dec 2011 02:08:10 GMT
|
27
|
+
server:
|
28
|
+
- Apache/2.2.17
|
29
|
+
set-cookie:
|
30
|
+
- AWSELB=F7715B6B10BD5947A6E9DAE19D6F6DD7D91A271FB7C65A13E6B150AA38A20996585FE1291DCF151568D701ED5E98FEE24FF052B412CF84A57C93B1B6B2555103165F28F773;PATH=/;MAX-AGE=600
|
31
|
+
content-length:
|
32
|
+
- '685'
|
33
|
+
connection:
|
34
|
+
- Close
|
35
|
+
body: ! '{"ok":1,"tsid":"LM416LNIKVLM1","name":"Baby Steppes","hub":{"id":27,"name":"Ix"},"mote":{"id":9,"name":"Ur"},"active_project":false,"features":["<b>5
|
36
|
+
Piggies<\/b>, <b>2 Butterflies<\/b>, <b>9 Chickens<\/b>, <b>5 Spice Plants<\/b>,
|
37
|
+
and <b>1 Gas Plant<\/b>."],"connections":{"LM4115NJ46G8M":{"name":"Groddle Ladder","hub":{"id":27,"name":"Ix"},"mote":{"id":9,"name":"Ur"}},"LM410TMR0S2S1":{"name":"Ruta
|
38
|
+
Asuncion","hub":{"id":27,"name":"Ix"},"mote":{"id":9,"name":"Ur"}},"LM4109NI2R640":{"name":"Guillermo
|
39
|
+
Gamera Way","hub":{"id":27,"name":"Ix"},"mote":{"id":9,"name":"Ur"}}},"image":{"url":"http:\/\/c2.glitch.bz\/streets\/2011-11-27\/LM416LNIKVLM1_main_1322382945.jpg","w":720,"h":120}}'
|
40
|
+
http_version: '1.1'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://api.glitch.com:80/simple/calendar.getHolidays
|
6
|
+
body: !!null
|
7
|
+
headers: !!null
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
access-control-allow-credentials:
|
14
|
+
- 'false'
|
15
|
+
access-control-allow-methods:
|
16
|
+
- POST, GET, OPTIONS
|
17
|
+
access-control-allow-origin:
|
18
|
+
- ! '*'
|
19
|
+
access-control-max-age:
|
20
|
+
- '1728000'
|
21
|
+
cache-control:
|
22
|
+
- no-cache="set-cookie"
|
23
|
+
content-type:
|
24
|
+
- text/plain; charset=utf-8
|
25
|
+
date:
|
26
|
+
- Thu, 01 Dec 2011 01:34:57 GMT
|
27
|
+
server:
|
28
|
+
- Apache/2.2.17
|
29
|
+
set-cookie:
|
30
|
+
- AWSELB=F7715B6B10BD5947A6E9DAE19D6F6DD7D91A271FB7C136A73584C8A9C7D99844891B9CE40943A67B18C55CD05576680FE8CB8ED1442E532BB1DB467DE7995571EE672126B5;PATH=/;MAX-AGE=600
|
31
|
+
content-length:
|
32
|
+
- '438'
|
33
|
+
connection:
|
34
|
+
- Close
|
35
|
+
body: ! '{"ok":1,"days":[{"month":1,"day":5,"name":"AlphCon"},{"month":2,"day":2,"name":"Lemadan"},{"month":3,"day":3,"name":"Pot
|
36
|
+
Twoday"},{"month":4,"day":2,"name":"Root"},{"month":4,"day":3,"name":"Root"},{"month":4,"day":4,"name":"Root"},{"month":4,"day":11,"name":"Sprinkling"},{"month":6,"day":17,"name":"Croppaday"},{"month":7,"day":1,"name":"Belabor
|
37
|
+
Day"},{"month":8,"day":37,"name":"Zilloween"},{"month":11,"day":11,"name":"Recurse
|
38
|
+
Eve"}]}'
|
39
|
+
http_version: '1.1'
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Snafu::Client do
|
4
|
+
before(:each) do
|
5
|
+
@snafu = Snafu.new(:api_key => GLITCH_API_KEY, :oauth_token => GLITCH_OAUTH_TOKEN)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe 'call()' do
|
9
|
+
it 'should receive a successful response from the Glitch API if given an valid method', :vcr do
|
10
|
+
VCR.use_cassette "calendar.getHoldays/valid_calendar" do
|
11
|
+
result = @snafu.call("calendar.getHolidays")
|
12
|
+
result['ok'].should eql(1)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should raise a GlitchAPIError if receiving an unsucessful response from the Glitch API', :vcr do
|
17
|
+
expect { @snafu.call("badmethod") }.to raise_error(Snafu::GlitchAPIError)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should accept a hash of POST arguments', :vcr do
|
21
|
+
hub_id = "27"
|
22
|
+
hub_name = "Ix"
|
23
|
+
result = @snafu.call("locations.getStreets", {:hub_id => "27"})
|
24
|
+
result["name"].should eql(hub_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should automatically pass in the oauth token if called with authenticate", :vcr do
|
28
|
+
expect { response = @snafu.call("players.stats", :authenticate => true) }.to_not raise_exception
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "authentication" do
|
33
|
+
describe "call()" do
|
34
|
+
context "without oauth token"
|
35
|
+
it "should raise a GlitchAPIError if trying to do an authenticated call without an oauth token" do
|
36
|
+
snafu = Snafu.new()
|
37
|
+
expect { snafu.call("secureMethod", :authenticate => true) }.to raise_error(Snafu::GlitchAPIError, /oauth token/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Snafu::Locations do
|
4
|
+
before(:each) do
|
5
|
+
@snafu = Snafu.new(:api_key => GLITCH_API_KEY, :oauth_token => GLITCH_OAUTH_TOKEN)
|
6
|
+
@test_hub_id = 27
|
7
|
+
@test_hub_name = "Ix"
|
8
|
+
@test_street_id = "LM416LNIKVLM1"
|
9
|
+
@test_street_name = "Baby Steppes"
|
10
|
+
end
|
11
|
+
|
12
|
+
context "get_hubs()" do
|
13
|
+
before(:each) do
|
14
|
+
@hubs = @snafu.get_hubs
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return an array of all hubs", :vcr do
|
18
|
+
@hubs.should_not be_empty
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return an array of Hub objects", :vcr do
|
22
|
+
@hubs.first.should be_a Snafu::Models::Hub
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should populated the returned Hub objects with an id and name", :vcr do
|
26
|
+
first_hub = @hubs.first
|
27
|
+
first_hub.id.should_not be_nil
|
28
|
+
first_hub.name.should_not be_nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "get_hub" do
|
33
|
+
it "should return a valid hub if given a valid Hub ID", :vcr do
|
34
|
+
hub = @snafu.get_hub(@test_hub_id)
|
35
|
+
hub.name.should eql(@test_hub_name)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "get_street" do
|
40
|
+
before(:each) do
|
41
|
+
@test_street = @snafu.get_street(@test_street_id)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return a complete street if given a valid street ID", :vcr do
|
45
|
+
@test_street.id.should_not be_nil
|
46
|
+
@test_street.name.should_not be_nil
|
47
|
+
@test_street.mote.should_not be_nil
|
48
|
+
@test_street.active_project?.should_not be_nil
|
49
|
+
@test_street.connections.should_not be_empty
|
50
|
+
@test_street.image.url.should_not be_nil
|
51
|
+
@test_street.image.width.should_not be_nil
|
52
|
+
@test_street.image.height.should_not be_nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Snafu
|
4
|
+
module Models
|
5
|
+
describe Snafu::Models::GlitchImage do
|
6
|
+
before(:each) do
|
7
|
+
@valid_image = GlitchImage.new(
|
8
|
+
:url => "http://example.com",
|
9
|
+
:width => 100,
|
10
|
+
:height => 100
|
11
|
+
)
|
12
|
+
end
|
13
|
+
context "initialize()" do
|
14
|
+
it "should retain all parameters" do
|
15
|
+
@valid_image.url.should_not be_nil
|
16
|
+
@valid_image.height.should be > 0
|
17
|
+
@valid_image.width.should be > 0
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should convert a string width argument into an integer" do
|
21
|
+
glitch_image = GlitchImage.new(
|
22
|
+
:width => "100"
|
23
|
+
)
|
24
|
+
glitch_image.width.should be_a Integer
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should convert a string height argument into an integer" do
|
28
|
+
glitch_image = GlitchImage.new(
|
29
|
+
:height => "100"
|
30
|
+
)
|
31
|
+
glitch_image.height.should be_a Integer
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Snafu
|
4
|
+
module Models
|
5
|
+
describe Snafu::Models::Hub do
|
6
|
+
context "initialize()" do
|
7
|
+
it "should populate values if given an options hash" do
|
8
|
+
expected_id = "1"
|
9
|
+
expected_name = "Some Hub"
|
10
|
+
expected_street = {:id => "2", :name => "Some Street"}
|
11
|
+
new_hub = Hub.new(
|
12
|
+
:id => expected_id,
|
13
|
+
:name => expected_name,
|
14
|
+
:streets => expected_street
|
15
|
+
)
|
16
|
+
new_hub.id.should eql(expected_id)
|
17
|
+
new_hub.name.should eql(expected_name)
|
18
|
+
new_hub.streets.first.should eql(expected_street)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should populate values if given the raw JSON response from HTTParty", :vcr do
|
22
|
+
glitch_client = Snafu.new(:api_key => GLITCH_API_KEY, :oauth_token => GLITCH_OAUTH_TOKEN)
|
23
|
+
glitch_response = glitch_client.call("locations.getStreets", :hub_id => 27)
|
24
|
+
new_hub = Hub.new(glitch_response)
|
25
|
+
new_hub.streets.should_not be_nil
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should accept an array for the :streets parameter" do
|
29
|
+
expected_value = [{:id => "2", :name => "Some Street"}]
|
30
|
+
new_hub = Hub.new(:streets => expected_value)
|
31
|
+
new_hub.streets.should eql(expected_value)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should accept a hash for the :streets parameter" do
|
35
|
+
street_hash = {:id => "2", :name => "Some Street"}
|
36
|
+
expected_value = [street_hash]
|
37
|
+
new_hub = Hub.new(:streets => street_hash)
|
38
|
+
new_hub.streets.should eql(expected_value)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Snafu
|
4
|
+
module Models
|
5
|
+
describe Snafu::Models::Street do
|
6
|
+
before(:each) do
|
7
|
+
@snafu = Snafu.new(:api_key => GLITCH_API_KEY, :oauth_token => GLITCH_OAUTH_TOKEN)
|
8
|
+
@test_hub_id = 27
|
9
|
+
@test_hub_name = "Ix"
|
10
|
+
@test_street_id = "LM416LNIKVLM1"
|
11
|
+
@test_street_name = "Baby Steppes"
|
12
|
+
end
|
13
|
+
context "initialize()" do
|
14
|
+
it "should populate values if given an options hash", :vcr do
|
15
|
+
expected_id = "1"
|
16
|
+
expected_name = "Some street"
|
17
|
+
expected_hub = Hub.new(:id => "2", :name => "Some Hub")
|
18
|
+
expected_connections = [Street.new(:id => "3", :name => "Connected Street")]
|
19
|
+
expected_mote = Hub.new(:id => "4", :name => "Some Mote")
|
20
|
+
expected_features = "some features"
|
21
|
+
expected_image = GlitchImage.new(:url => "http://example.com/image.png", :width => "100", :height => "100")
|
22
|
+
expected_active_project = false
|
23
|
+
new_street = Street.new(
|
24
|
+
:id => expected_id,
|
25
|
+
:name => expected_name,
|
26
|
+
:hub => expected_hub,
|
27
|
+
:features => expected_features,
|
28
|
+
:connections => expected_connections,
|
29
|
+
:active_project => expected_active_project,
|
30
|
+
:mote => expected_mote,
|
31
|
+
:image => expected_image,
|
32
|
+
)
|
33
|
+
|
34
|
+
new_street.id.should eql(expected_id)
|
35
|
+
new_street.name.should eql(expected_name)
|
36
|
+
new_street.hub.should eql(expected_hub)
|
37
|
+
new_street.features.should eql(expected_features)
|
38
|
+
new_street.connections.should eql(expected_connections)
|
39
|
+
new_street.mote.should eql(expected_mote)
|
40
|
+
new_street.image.should eql(expected_image)
|
41
|
+
new_street.active_project.should eql(expected_active_project)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should populate values if given the raw JSON response from HTTParty", :vcr do
|
45
|
+
response = @snafu.call("locations.streetInfo", :street_tsid => @test_street_id)
|
46
|
+
expected_id = response["tsid"]
|
47
|
+
expected_name = response["name"]
|
48
|
+
expected_hub = Hub.new(:id => response["hub"]["id"], :name => response["hub"]["name"])
|
49
|
+
expected_features = response["features"]
|
50
|
+
expected_connections = []
|
51
|
+
response["connections"].each do |street_id, street|
|
52
|
+
expected_connections << Street.new(
|
53
|
+
:id => street_id,
|
54
|
+
:name => street["name"],
|
55
|
+
:hub => Hub.new(:id => response["hub"]["id"], :name => response["hub"]["name"]),
|
56
|
+
:mote => Hub.new(:id => response["mote"]["id"], :name => response["mote"]["name"]),
|
57
|
+
)
|
58
|
+
end
|
59
|
+
expected_mote = Hub.new(:id => response["mote"]["id"], :name => response["mote"]["name"])
|
60
|
+
expected_image = GlitchImage.new(
|
61
|
+
:url => response["image"]["url"],
|
62
|
+
:width => response["image"]["w"],
|
63
|
+
:height => response["image"]["h"]
|
64
|
+
)
|
65
|
+
expected_active_project = response["active_project"]
|
66
|
+
|
67
|
+
new_street = Street.new(response)
|
68
|
+
|
69
|
+
new_street.id.should eql(expected_id)
|
70
|
+
new_street.name.should eql(expected_name)
|
71
|
+
new_street.hub.name.should eql(expected_hub.name)
|
72
|
+
new_street.features.should eql(expected_features)
|
73
|
+
new_street.connections.count.should eql(expected_connections.count)
|
74
|
+
new_street.mote.name.should eql(expected_mote.name)
|
75
|
+
new_street.image.url.should eql(expected_image.url)
|
76
|
+
new_street.active_project.should eql(expected_active_project)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Snafu::Models::Hub do
|
4
|
+
it "should retain the ID & Name of the hub if given a valid " do
|
5
|
+
hub = Snafu::Models::Hub.new(:id => @test_hub_id, :name => @test_hub_name)
|
6
|
+
hub.id.should eql(@test_hub_id)
|
7
|
+
hub.name.should eql(@test_hub_name)
|
8
|
+
end
|
9
|
+
end
|
data/spec/snafu_spec.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Snafu do
|
4
|
+
|
5
|
+
it "should return a Snafu::Client object if supplied with valid parameters" do
|
6
|
+
glitch_client = Snafu.new({:oauth_token => GLITCH_OAUTH_TOKEN})
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should retain the Oauth Token" do
|
10
|
+
test_oauth_token = GLITCH_OAUTH_TOKEN
|
11
|
+
glitch_client = Snafu.new(:api_key => GLITCH_API_KEY, :oauth_token => GLITCH_OAUTH_TOKEN)
|
12
|
+
glitch_client.oauth_token.should eql(test_oauth_token)
|
13
|
+
end
|
14
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'snafu'
|
2
|
+
require 'vcr'
|
3
|
+
require 'api_key' if File.exists?(File.dirname(__FILE__) + "/api_key.rb")
|
4
|
+
|
5
|
+
VCR.config do |config|
|
6
|
+
TWO_WEEKS = 14 * 24 * 60 * 60 # or use 7.days if you're using ActiveSupport
|
7
|
+
config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
8
|
+
config.stub_with :fakeweb
|
9
|
+
config.default_cassette_options = { :re_record_interval => TWO_WEEKS }
|
10
|
+
#config.allow_http_connections_when_no_cassette = true
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec.configure do |config|
|
14
|
+
config.filter_run_excluding :broken => true
|
15
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
16
|
+
config.around(:each, :vcr) do |example|
|
17
|
+
name = example.metadata[:full_description].split(/\s+/, 2).join("/").gsub(/[^\w\/]+/, "_")
|
18
|
+
VCR.use_cassette(name) { example.call }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
if !defined? GLITCH_API_KEY
|
23
|
+
GLITCH_API_KEY = "testing-key"
|
24
|
+
end
|
25
|
+
|
26
|
+
if !defined? GLITCH_OAUTH_TOKEN
|
27
|
+
GLITCH_OAUTH_TOKEN = "testing-token"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: snafu
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jeff Browning
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-12-02 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &70150468761000 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70150468761000
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: guard-rspec
|
27
|
+
requirement: &70150468759880 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70150468759880
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: vcr
|
38
|
+
requirement: &70150468758380 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70150468758380
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: fakeweb
|
49
|
+
requirement: &70150468757000 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70150468757000
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rake
|
60
|
+
requirement: &70150468755220 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70150468755220
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: &70150468753980 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.8'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70150468753980
|
80
|
+
description: ! "Snafu is an interface to the Glitch API. Glitch is an online \n multi-player
|
81
|
+
game created by Tiny Speck."
|
82
|
+
email:
|
83
|
+
- jeff@jkbrowning.com
|
84
|
+
executables: []
|
85
|
+
extensions: []
|
86
|
+
extra_rdoc_files: []
|
87
|
+
files:
|
88
|
+
- .gitignore
|
89
|
+
- Gemfile
|
90
|
+
- Guardfile
|
91
|
+
- LICENSE
|
92
|
+
- README.textile
|
93
|
+
- Rakefile
|
94
|
+
- lib/snafu.rb
|
95
|
+
- lib/snafu/client.rb
|
96
|
+
- lib/snafu/locations.rb
|
97
|
+
- lib/snafu/models.rb
|
98
|
+
- lib/snafu/models/glitch_image.rb
|
99
|
+
- lib/snafu/models/hub.rb
|
100
|
+
- lib/snafu/models/location.rb
|
101
|
+
- lib/snafu/models/street.rb
|
102
|
+
- lib/snafu/version.rb
|
103
|
+
- snafu.gemspec
|
104
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_accept_a_hash_of_POST_arguments.yml
|
105
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if.yml
|
106
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate.yml
|
107
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate_called_with_true.yml
|
108
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate.yml
|
109
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate_true.yml
|
110
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_true.yml
|
111
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_raise_a_GlitchAPIError_if_receiving_an_unsucessful_response_from_the_Glitch_API.yml
|
112
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hub_should_return_a_valid_hub_if_given_a_valid_Hub_ID.yml
|
113
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_populated_the_returned_Hub_objects_with_an_id_and_name.yml
|
114
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_Hub_objects.yml
|
115
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_all_hubs.yml
|
116
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_street_should_return_a_complete_street_if_given_a_valid_street_ID.yml
|
117
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml
|
118
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_response_from_Glitch.yml
|
119
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Street/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml
|
120
|
+
- spec/fixtures/vcr_cassettes/calendar_getHoldays/valid_calendar.yml
|
121
|
+
- spec/snafu/client_spec.rb
|
122
|
+
- spec/snafu/locations_spec.rb
|
123
|
+
- spec/snafu/models/glitch_image_spec.rb
|
124
|
+
- spec/snafu/models/hub_spec.rb
|
125
|
+
- spec/snafu/models/street_spec.rb
|
126
|
+
- spec/snafu/models_spec.rb
|
127
|
+
- spec/snafu_spec.rb
|
128
|
+
- spec/spec_helper.rb
|
129
|
+
homepage: https://github.com/jbrowning/snafu
|
130
|
+
licenses:
|
131
|
+
- MIT
|
132
|
+
post_install_message:
|
133
|
+
rdoc_options: []
|
134
|
+
require_paths:
|
135
|
+
- lib
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.9.2
|
142
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
144
|
+
requirements:
|
145
|
+
- - ! '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project: snafu
|
150
|
+
rubygems_version: 1.8.10
|
151
|
+
signing_key:
|
152
|
+
specification_version: 3
|
153
|
+
summary: A library for the Glitch API
|
154
|
+
test_files:
|
155
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_accept_a_hash_of_POST_arguments.yml
|
156
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if.yml
|
157
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate.yml
|
158
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate_called_with_true.yml
|
159
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate.yml
|
160
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate_true.yml
|
161
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_true.yml
|
162
|
+
- spec/fixtures/vcr_cassettes/Snafu_Client/call_should_raise_a_GlitchAPIError_if_receiving_an_unsucessful_response_from_the_Glitch_API.yml
|
163
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hub_should_return_a_valid_hub_if_given_a_valid_Hub_ID.yml
|
164
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_populated_the_returned_Hub_objects_with_an_id_and_name.yml
|
165
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_Hub_objects.yml
|
166
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_all_hubs.yml
|
167
|
+
- spec/fixtures/vcr_cassettes/Snafu_Locations/get_street_should_return_a_complete_street_if_given_a_valid_street_ID.yml
|
168
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml
|
169
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_response_from_Glitch.yml
|
170
|
+
- spec/fixtures/vcr_cassettes/Snafu_Models_Street/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml
|
171
|
+
- spec/fixtures/vcr_cassettes/calendar_getHoldays/valid_calendar.yml
|
172
|
+
- spec/snafu/client_spec.rb
|
173
|
+
- spec/snafu/locations_spec.rb
|
174
|
+
- spec/snafu/models/glitch_image_spec.rb
|
175
|
+
- spec/snafu/models/hub_spec.rb
|
176
|
+
- spec/snafu/models/street_spec.rb
|
177
|
+
- spec/snafu/models_spec.rb
|
178
|
+
- spec/snafu_spec.rb
|
179
|
+
- spec/spec_helper.rb
|