chute 0.0.2 → 2.0.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 (85) hide show
  1. data/Gemfile +16 -2
  2. data/Gemfile.lock +52 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.md +46 -0
  5. data/Rakefile +48 -6
  6. data/VERSION +1 -0
  7. data/chute.gemspec +120 -16
  8. data/lib/chute.rb +7 -20
  9. data/lib/chute/client.rb +42 -0
  10. data/lib/chute/configuration.rb +40 -0
  11. data/lib/chute/connection.rb +64 -0
  12. data/lib/chute/response.rb +22 -0
  13. data/lib/chute/v2/albums.rb +60 -0
  14. data/lib/chute/v2/assets.rb +55 -0
  15. data/lib/chute/v2/comments.rb +29 -0
  16. data/lib/chute/v2/flags.rb +21 -0
  17. data/lib/chute/v2/hearts.rb +21 -0
  18. data/lib/chute/v2/parcels.rb +21 -0
  19. data/lib/chute/v2/tags.rb +36 -0
  20. data/lib/chute/v2/triggers.rb +26 -0
  21. data/lib/chute/v2/users.rb +18 -0
  22. data/lib/chute/v2/votes.rb +21 -0
  23. data/lib/chute/version.rb +7 -1
  24. data/spec/chute/chute_spec.rb +64 -0
  25. data/spec/chute/client_spec.rb +82 -0
  26. data/spec/chute/connection_spec.rb +47 -0
  27. data/spec/chute/response_spec.rb +16 -0
  28. data/spec/chute/v2/albums_spec.rb +197 -0
  29. data/spec/chute/v2/assets_spec.rb +171 -0
  30. data/spec/chute/v2/comments_spec.rb +88 -0
  31. data/spec/chute/v2/flags_spec.rb +56 -0
  32. data/spec/chute/v2/hearts_spec.rb +57 -0
  33. data/spec/chute/v2/parcels_spec.rb +24 -0
  34. data/spec/chute/v2/tags_spec.rb +79 -0
  35. data/spec/chute/v2/trigger_spec.rb +127 -0
  36. data/spec/chute/v2/users_spec.rb +53 -0
  37. data/spec/chute/v2/votes_spec.rb +56 -0
  38. data/spec/fixtures/chute_cassettes/albums/album_create_with_permission_view.yml +69 -0
  39. data/spec/fixtures/chute_cassettes/albums/albums_add_remove_assets.yml +187 -0
  40. data/spec/fixtures/chute_cassettes/albums/albums_create.yml +69 -0
  41. data/spec/fixtures/chute_cassettes/albums/albums_delete.yml +128 -0
  42. data/spec/fixtures/chute_cassettes/albums/albums_get.yml +135 -0
  43. data/spec/fixtures/chute_cassettes/albums/albums_list.yml +89 -0
  44. data/spec/fixtures/chute_cassettes/albums/albums_stats.yml +128 -0
  45. data/spec/fixtures/chute_cassettes/albums/albums_update.yml +135 -0
  46. data/spec/fixtures/chute_cassettes/assets/assets_delete.yml +131 -0
  47. data/spec/fixtures/chute_cassettes/assets/assets_geo.yml +197 -0
  48. data/spec/fixtures/chute_cassettes/assets/assets_get.yml +138 -0
  49. data/spec/fixtures/chute_cassettes/assets/assets_import.yml +76 -0
  50. data/spec/fixtures/chute_cassettes/assets/assets_list.yml +77 -0
  51. data/spec/fixtures/chute_cassettes/assets/assets_update.yml +138 -0
  52. data/spec/fixtures/chute_cassettes/comments/comments_create.yml +196 -0
  53. data/spec/fixtures/chute_cassettes/comments/comments_list.yml +259 -0
  54. data/spec/fixtures/chute_cassettes/flags/flags_methods.yml +313 -0
  55. data/spec/fixtures/chute_cassettes/hearts/hearts_methods.yml +254 -0
  56. data/spec/fixtures/chute_cassettes/tags/tags_assets.yml +311 -0
  57. data/spec/fixtures/chute_cassettes/triggers/trigger_errors.yml +62 -0
  58. data/spec/fixtures/chute_cassettes/triggers/triggers_cleanup.yml +184 -0
  59. data/spec/fixtures/chute_cassettes/triggers/triggers_create.yml +65 -0
  60. data/spec/fixtures/chute_cassettes/triggers/triggers_delete.yml +124 -0
  61. data/spec/fixtures/chute_cassettes/triggers/triggers_list.yml +66 -0
  62. data/spec/fixtures/chute_cassettes/triggers/triggers_update.yml +127 -0
  63. data/spec/fixtures/chute_cassettes/users/users_get.yml +128 -0
  64. data/spec/fixtures/chute_cassettes/users/users_me.yml +66 -0
  65. data/spec/fixtures/chute_cassettes/votes/votes_methods.yml +313 -0
  66. data/spec/spec_helper.rb +27 -0
  67. metadata +210 -33
  68. data/.gitignore +0 -5
  69. data/README +0 -125
  70. data/config/chute.rb +0 -0
  71. data/lib/chute/account.rb +0 -58
  72. data/lib/chute/app.rb +0 -32
  73. data/lib/chute/asset.rb +0 -124
  74. data/lib/chute/bundle.rb +0 -72
  75. data/lib/chute/chute.rb +0 -203
  76. data/lib/chute/collection.rb +0 -47
  77. data/lib/chute/comment.rb +0 -32
  78. data/lib/chute/exception.rb +0 -7
  79. data/lib/chute/http_service.rb +0 -114
  80. data/lib/chute/inbox.rb +0 -41
  81. data/lib/chute/parcel.rb +0 -45
  82. data/lib/chute/resource.rb +0 -354
  83. data/lib/chute/user.rb +0 -113
  84. data/lib/chute/util.rb +0 -14
  85. data/test/test_sudoku.rb +0 -7
data/Gemfile CHANGED
@@ -1,4 +1,18 @@
1
1
  source "http://rubygems.org"
2
+ gem 'httparty'
3
+ gem 'hashie'
2
4
 
3
- # Specify your gem's dependencies in get_chute.gemspec
4
- gemspec
5
+ # Add dependencies to develop your gem here.
6
+ # Include everything needed to run rake, tests, features, etc.
7
+ group :development do
8
+ gem "rspec", "~> 2.8.0"
9
+ gem "rdoc", "~> 3.12"
10
+ gem "bundler"
11
+ gem "jeweler", "~> 1.8.4"
12
+ gem "simplecov"
13
+ end
14
+
15
+ group :test do
16
+ gem 'webmock'
17
+ gem 'vcr'
18
+ end
@@ -0,0 +1,52 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ addressable (2.3.2)
5
+ crack (0.3.1)
6
+ diff-lcs (1.1.3)
7
+ git (1.2.5)
8
+ hashie (1.2.0)
9
+ httparty (0.9.0)
10
+ multi_json (~> 1.0)
11
+ multi_xml
12
+ jeweler (1.8.4)
13
+ bundler (~> 1.0)
14
+ git (>= 1.2.5)
15
+ rake
16
+ rdoc
17
+ json (1.7.6)
18
+ multi_json (1.5.0)
19
+ multi_xml (0.5.1)
20
+ rake (10.0.3)
21
+ rdoc (3.12)
22
+ json (~> 1.4)
23
+ rspec (2.8.0)
24
+ rspec-core (~> 2.8.0)
25
+ rspec-expectations (~> 2.8.0)
26
+ rspec-mocks (~> 2.8.0)
27
+ rspec-core (2.8.0)
28
+ rspec-expectations (2.8.0)
29
+ diff-lcs (~> 1.1.2)
30
+ rspec-mocks (2.8.0)
31
+ simplecov (0.7.1)
32
+ multi_json (~> 1.0)
33
+ simplecov-html (~> 0.7.1)
34
+ simplecov-html (0.7.1)
35
+ vcr (2.2.5)
36
+ webmock (1.8.11)
37
+ addressable (>= 2.2.7)
38
+ crack (>= 0.1.7)
39
+
40
+ PLATFORMS
41
+ ruby
42
+
43
+ DEPENDENCIES
44
+ bundler
45
+ hashie
46
+ httparty
47
+ jeweler (~> 1.8.4)
48
+ rdoc (~> 3.12)
49
+ rspec (~> 2.8.0)
50
+ simplecov
51
+ vcr
52
+ webmock
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Darko Grozdanovski
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,46 @@
1
+ CHUTE WRAPPER GEM
2
+ ==
3
+
4
+ Development
5
+ --
6
+
7
+ to build and install the gem locally on your system use:
8
+
9
+ rake install
10
+
11
+ you can afterwards include it inside your rails app
12
+
13
+
14
+ Running tests
15
+ --
16
+
17
+ to run the tests write
18
+
19
+
20
+ bundle exec rspec
21
+
22
+
23
+ Configuration of the Gem Inside your config/ folder
24
+ --
25
+
26
+ ```
27
+ Chute.configure do |config|
28
+ config.app_id = YOUR_APP_ID
29
+ config.app_secret = YOUR_APP_SECRET
30
+ config.access_token = YOUR_ACCESS_TOKEN
31
+ end
32
+ ```
33
+
34
+
35
+ The parameters in the response are accessed as standard fields inside a class. Assuming `response` is the basic
36
+ object containing the complete response you can access the id of the element by
37
+
38
+ ```
39
+ response.data.id # if data is a single object
40
+ response.data[0].id # if data is an array
41
+ ```
42
+
43
+
44
+ Responses are being recorded for reuse by using VCR
45
+
46
+ if you need to re-run some of them remove the specific one from `fixtures/`
data/Rakefile CHANGED
@@ -1,11 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
1
4
  require 'bundler'
2
- require 'rake/testtask'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
3
13
 
4
- Bundler::GemHelper.install_tasks
14
+ require 'jeweler'
15
+ require './lib/chute/version.rb'
5
16
 
6
- Rake::TestTask.new do |t|
7
- t.libs << 'test'
17
+ Jeweler::Tasks.new do |gem|
18
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
19
+ gem.name = "chute"
20
+ gem.homepage = "https://github.com/chute/chute-sdk-2"
21
+ gem.license = "MIT"
22
+ gem.summary = %Q{getchute API wrapper}
23
+ gem.description = %Q{wrapper for the API for getchute.com}
24
+ gem.email = "support@gmail.com"
25
+ gem.authors = ["Darko Grozdanovski","Chris Burkhart","Petr Bela"]
26
+ gem.version = Chute::Version::STRING
27
+ # dependencies defined in Gemfile
28
+ gem.add_dependency 'httparty'
8
29
  end
30
+ Jeweler::RubygemsDotOrgTasks.new
9
31
 
10
- desc "Run tests"
11
- task :default => :test
32
+ require 'rspec/core'
33
+ require 'rspec/core/rake_task'
34
+ RSpec::Core::RakeTask.new(:spec) do |spec|
35
+ spec.pattern = FileList['spec/**/*_spec.rb']
36
+ end
37
+
38
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
39
+ spec.pattern = 'spec/**/*_spec.rb'
40
+ spec.rcov = true
41
+ end
42
+
43
+ task :default => :spec
44
+
45
+ require 'rdoc/task'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "chute #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2.0.1
@@ -1,22 +1,126 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
1
4
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "chute/version"
4
- require "httparty"
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "chute"
8
- s.version = Chute::VERSION
9
- s.authors = ["Payal Gupta"]
10
- s.email = ["payal@getchute.com"]
11
- s.homepage = ""
12
- s.summary = %q{Chute API Integration}
13
- s.description = %q{This gem allows to map your models with a chute.}
7
+ s.name = "chute"
8
+ s.version = "2.0.0"
14
9
 
15
- s.rubyforge_project = "chute"
16
-
17
- s.files = `git ls-files`.split("\n")
18
- #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.test_files = Dir.glob("test/**/*.rb")
20
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Darko Grozdanovski", "Chris Burkhart", "Petr Bela"]
12
+ s.date = "2013-04-11"
13
+ s.description = "wrapper for the API for getchute.com"
14
+ s.email = "support@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ "Gemfile",
21
+ "Gemfile.lock",
22
+ "LICENSE.txt",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "chute.gemspec",
27
+ "lib/chute.rb",
28
+ "lib/chute/client.rb",
29
+ "lib/chute/configuration.rb",
30
+ "lib/chute/connection.rb",
31
+ "lib/chute/response.rb",
32
+ "lib/chute/v2/albums.rb",
33
+ "lib/chute/v2/assets.rb",
34
+ "lib/chute/v2/comments.rb",
35
+ "lib/chute/v2/flags.rb",
36
+ "lib/chute/v2/hearts.rb",
37
+ "lib/chute/v2/parcels.rb",
38
+ "lib/chute/v2/tags.rb",
39
+ "lib/chute/v2/triggers.rb",
40
+ "lib/chute/v2/users.rb",
41
+ "lib/chute/v2/votes.rb",
42
+ "lib/chute/version.rb",
43
+ "spec/chute/chute_spec.rb",
44
+ "spec/chute/client_spec.rb",
45
+ "spec/chute/connection_spec.rb",
46
+ "spec/chute/response_spec.rb",
47
+ "spec/chute/v2/albums_spec.rb",
48
+ "spec/chute/v2/assets_spec.rb",
49
+ "spec/chute/v2/comments_spec.rb",
50
+ "spec/chute/v2/flags_spec.rb",
51
+ "spec/chute/v2/hearts_spec.rb",
52
+ "spec/chute/v2/parcels_spec.rb",
53
+ "spec/chute/v2/tags_spec.rb",
54
+ "spec/chute/v2/trigger_spec.rb",
55
+ "spec/chute/v2/users_spec.rb",
56
+ "spec/chute/v2/votes_spec.rb",
57
+ "spec/fixtures/chute_cassettes/albums/album_create_with_permission_view.yml",
58
+ "spec/fixtures/chute_cassettes/albums/albums_add_remove_assets.yml",
59
+ "spec/fixtures/chute_cassettes/albums/albums_create.yml",
60
+ "spec/fixtures/chute_cassettes/albums/albums_delete.yml",
61
+ "spec/fixtures/chute_cassettes/albums/albums_get.yml",
62
+ "spec/fixtures/chute_cassettes/albums/albums_list.yml",
63
+ "spec/fixtures/chute_cassettes/albums/albums_stats.yml",
64
+ "spec/fixtures/chute_cassettes/albums/albums_update.yml",
65
+ "spec/fixtures/chute_cassettes/assets/assets_delete.yml",
66
+ "spec/fixtures/chute_cassettes/assets/assets_geo.yml",
67
+ "spec/fixtures/chute_cassettes/assets/assets_get.yml",
68
+ "spec/fixtures/chute_cassettes/assets/assets_import.yml",
69
+ "spec/fixtures/chute_cassettes/assets/assets_list.yml",
70
+ "spec/fixtures/chute_cassettes/assets/assets_update.yml",
71
+ "spec/fixtures/chute_cassettes/comments/comments_create.yml",
72
+ "spec/fixtures/chute_cassettes/comments/comments_list.yml",
73
+ "spec/fixtures/chute_cassettes/flags/flags_methods.yml",
74
+ "spec/fixtures/chute_cassettes/hearts/hearts_methods.yml",
75
+ "spec/fixtures/chute_cassettes/tags/tags_assets.yml",
76
+ "spec/fixtures/chute_cassettes/triggers/trigger_errors.yml",
77
+ "spec/fixtures/chute_cassettes/triggers/triggers_cleanup.yml",
78
+ "spec/fixtures/chute_cassettes/triggers/triggers_create.yml",
79
+ "spec/fixtures/chute_cassettes/triggers/triggers_delete.yml",
80
+ "spec/fixtures/chute_cassettes/triggers/triggers_list.yml",
81
+ "spec/fixtures/chute_cassettes/triggers/triggers_update.yml",
82
+ "spec/fixtures/chute_cassettes/users/users_get.yml",
83
+ "spec/fixtures/chute_cassettes/users/users_me.yml",
84
+ "spec/fixtures/chute_cassettes/votes/votes_methods.yml",
85
+ "spec/spec_helper.rb"
86
+ ]
87
+ s.homepage = "https://github.com/chute/chute-sdk-2"
88
+ s.licenses = ["MIT"]
21
89
  s.require_paths = ["lib"]
90
+ s.rubygems_version = "1.8.25"
91
+ s.summary = "getchute API wrapper"
92
+
93
+ if s.respond_to? :specification_version then
94
+ s.specification_version = 3
95
+
96
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
97
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
98
+ s.add_runtime_dependency(%q<hashie>, [">= 0"])
99
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
100
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
101
+ s.add_development_dependency(%q<bundler>, [">= 0"])
102
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
103
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
104
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
105
+ else
106
+ s.add_dependency(%q<httparty>, [">= 0"])
107
+ s.add_dependency(%q<hashie>, [">= 0"])
108
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
109
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
110
+ s.add_dependency(%q<bundler>, [">= 0"])
111
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
112
+ s.add_dependency(%q<simplecov>, [">= 0"])
113
+ s.add_dependency(%q<httparty>, [">= 0"])
114
+ end
115
+ else
116
+ s.add_dependency(%q<httparty>, [">= 0"])
117
+ s.add_dependency(%q<hashie>, [">= 0"])
118
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
119
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
120
+ s.add_dependency(%q<bundler>, [">= 0"])
121
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
122
+ s.add_dependency(%q<simplecov>, [">= 0"])
123
+ s.add_dependency(%q<httparty>, [">= 0"])
124
+ end
22
125
  end
126
+
@@ -1,22 +1,9 @@
1
- #require "chute/version"
2
- #require "httparty"
1
+ require "httparty"
3
2
 
4
- # include utility modules
5
- require 'chute/util'
6
- require 'chute/http_service'
7
- require 'chute/collection'
8
- require 'chute/exception'
3
+ Dir[File.dirname(__FILE__) + '/chute/**/*.rb'].each do |file|
4
+ require file
5
+ end
9
6
 
10
- # include chute modules
11
-
12
- # base class
13
- require 'chute/resource'
14
- require 'chute/chute'
15
- require 'chute/asset'
16
- require 'chute/account'
17
- require 'chute/bundle'
18
- require 'chute/comment'
19
- require 'chute/parcel'
20
- require 'chute/user'
21
- require 'chute/app'
22
- require 'chute/inbox'
7
+ module Chute
8
+ extend Configuration
9
+ end
@@ -0,0 +1,42 @@
1
+ require 'chute/configuration'
2
+
3
+ module Chute
4
+ def self.as(token, &block)
5
+ temp_token = Chute.access_token
6
+ Chute.configure do |config|
7
+ config.access_token = token
8
+ end
9
+ yield block
10
+ Chute.configure do |config|
11
+ config.access_token = temp_token
12
+ end
13
+ end
14
+
15
+ class Client
16
+
17
+ class << self
18
+ ['get', 'post', 'put', 'delete'].each do |req_type|
19
+ define_method(req_type) do |url, data={}|
20
+ Chute::Connection.request(req_type, url, data)
21
+ end
22
+ end
23
+ end
24
+
25
+ # Define the same set of accessors as the Chute module
26
+ attr_accessor *Configuration::VALID_CONFIG_KEYS
27
+
28
+ def initialize(options={})
29
+ # Merge the config values from the module and those passed
30
+ # to the client.
31
+ merged_options = Chute.options.merge(options)
32
+
33
+ # Copy the merged values to this client and ignore those
34
+ # not part of our configuration
35
+ Configuration::VALID_CONFIG_KEYS.each do |key|
36
+ send("#{key}=", merged_options[key])
37
+ end
38
+ end
39
+
40
+
41
+ end
42
+ end
@@ -0,0 +1,40 @@
1
+ module Chute
2
+ module Configuration
3
+
4
+ VALID_CONNECTION_KEYS = [:api_endpoint, :auth_endpoint].freeze
5
+ VALID_OPTIONS_KEYS = [:app_id, :app_secret, :access_token].freeze
6
+ VALID_CONFIG_KEYS = VALID_CONNECTION_KEYS + VALID_OPTIONS_KEYS
7
+
8
+
9
+ DEFAULT_API_ENDPOINT = 'https://api.getchute.com'
10
+ DEFAULT_AUTH_ENDPOINT = 'https://getchute.com/auth'
11
+
12
+ DEFAULT_APP_ID = 'app_id'
13
+ DEFAULT_APP_SECRET = 'app_secret'
14
+ DEFAULT_ACCESS_TOKEN = 'access_token'
15
+
16
+ attr_accessor *VALID_CONFIG_KEYS
17
+
18
+ def options
19
+ Hash[ * VALID_CONFIG_KEYS.map { |key| [key, send(key)] }.flatten ]
20
+ end
21
+
22
+ def configure
23
+ yield(self)
24
+ end
25
+
26
+ def self.extended(base)
27
+ base.reset
28
+ end
29
+
30
+ def reset
31
+ self.api_endpoint = DEFAULT_API_ENDPOINT
32
+ self.auth_endpoint = DEFAULT_AUTH_ENDPOINT
33
+
34
+ self.app_id = DEFAULT_APP_ID
35
+ self.app_secret = DEFAULT_APP_SECRET
36
+ self.access_token = DEFAULT_ACCESS_TOKEN
37
+ end
38
+
39
+ end
40
+ end