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.
Files changed (42) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +4 -0
  3. data/Guardfile +10 -0
  4. data/LICENSE +7 -0
  5. data/README.textile +65 -0
  6. data/Rakefile +6 -0
  7. data/lib/snafu.rb +6 -0
  8. data/lib/snafu/client.rb +68 -0
  9. data/lib/snafu/locations.rb +32 -0
  10. data/lib/snafu/models.rb +4 -0
  11. data/lib/snafu/models/glitch_image.rb +17 -0
  12. data/lib/snafu/models/hub.rb +32 -0
  13. data/lib/snafu/models/location.rb +17 -0
  14. data/lib/snafu/models/street.rb +41 -0
  15. data/lib/snafu/version.rb +3 -0
  16. data/snafu.gemspec +31 -0
  17. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_accept_a_hash_of_POST_arguments.yml +39 -0
  18. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if.yml +36 -0
  19. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate.yml +36 -0
  20. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_authenticate_called_with_true.yml +36 -0
  21. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate.yml +36 -0
  22. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_authenticate_true.yml +36 -0
  23. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_automatically_pass_in_the_oauth_token_if_called_with_true.yml +36 -0
  24. data/spec/fixtures/vcr_cassettes/Snafu_Client/call_should_raise_a_GlitchAPIError_if_receiving_an_unsucessful_response_from_the_Glitch_API.yml +36 -0
  25. data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hub_should_return_a_valid_hub_if_given_a_valid_Hub_ID.yml +39 -0
  26. data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_populated_the_returned_Hub_objects_with_an_id_and_name.yml +39 -0
  27. data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_Hub_objects.yml +39 -0
  28. data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_hubs_should_return_an_array_of_all_hubs.yml +39 -0
  29. data/spec/fixtures/vcr_cassettes/Snafu_Locations/get_street_should_return_a_complete_street_if_given_a_valid_street_ID.yml +40 -0
  30. data/spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml +39 -0
  31. data/spec/fixtures/vcr_cassettes/Snafu_Models_Hub/initialize_should_populate_values_if_given_the_raw_response_from_Glitch.yml +39 -0
  32. data/spec/fixtures/vcr_cassettes/Snafu_Models_Street/initialize_should_populate_values_if_given_the_raw_JSON_response_from_HTTParty.yml +40 -0
  33. data/spec/fixtures/vcr_cassettes/calendar_getHoldays/valid_calendar.yml +39 -0
  34. data/spec/snafu/client_spec.rb +41 -0
  35. data/spec/snafu/locations_spec.rb +55 -0
  36. data/spec/snafu/models/glitch_image_spec.rb +36 -0
  37. data/spec/snafu/models/hub_spec.rb +43 -0
  38. data/spec/snafu/models/street_spec.rb +81 -0
  39. data/spec/snafu/models_spec.rb +9 -0
  40. data/spec/snafu_spec.rb +14 -0
  41. data/spec/spec_helper.rb +28 -0
  42. 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
@@ -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
@@ -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