evrythng 0.0.5 → 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/README.md +1 -2
- data/evrythng.gemspec +12 -16
- data/lib/evrythng/authenticatable.rb +21 -0
- data/lib/evrythng/client/collections.rb +6 -14
- data/lib/evrythng/client/properties.rb +45 -0
- data/lib/evrythng/client/search.rb +22 -0
- data/lib/evrythng/client/thngs.rb +20 -16
- data/lib/evrythng/client.rb +31 -6
- data/lib/evrythng/config.rb +69 -0
- data/lib/evrythng/connection.rb +22 -23
- data/lib/evrythng/core_ext/hash.rb +19 -0
- data/lib/evrythng/error/bad_gateway.rb +7 -0
- data/lib/evrythng/error/bad_request.rb +7 -0
- data/lib/evrythng/error/client_error.rb +7 -0
- data/lib/evrythng/error/enhance_your_calm.rb +11 -0
- data/lib/evrythng/error/forbidden.rb +7 -0
- data/lib/evrythng/error/internal_server_error.rb +7 -0
- data/lib/evrythng/error/not_acceptable.rb +7 -0
- data/lib/evrythng/error/not_found.rb +7 -0
- data/lib/evrythng/error/server_error.rb +7 -0
- data/lib/evrythng/error/service_unavailable.rb +7 -0
- data/lib/evrythng/error/unauthorized.rb +7 -0
- data/lib/evrythng/error.rb +10 -33
- data/lib/evrythng/request/gateway.rb +20 -0
- data/lib/evrythng/request/token_authentication.rb +22 -0
- data/lib/evrythng/request.rb +17 -17
- data/lib/evrythng/response/parse_json.rb +23 -0
- data/lib/evrythng/response/raise_client_error.rb +49 -0
- data/lib/evrythng/response/raise_server_error.rb +23 -0
- data/lib/evrythng/version.rb +1 -2
- data/lib/evrythng.rb +5 -7
- metadata +65 -96
- data/lib/evrythng/api.rb +0 -24
- data/lib/evrythng/authentication.rb +0 -25
- data/lib/evrythng/configuration.rb +0 -102
- data/lib/evrythng/search.rb +0 -173
- data/lib/faraday/request/basic_authentication.rb +0 -15
- data/lib/faraday/request/evrythng_oauth.rb +0 -24
- data/lib/faraday/request/gateway.rb +0 -18
- data/lib/faraday/request/multipart_with_file.rb +0 -34
- data/lib/faraday/response/raise_http_4xx.rb +0 -45
- data/lib/faraday/response/raise_http_5xx.rb +0 -24
data/lib/evrythng/request.rb
CHANGED
@@ -1,40 +1,40 @@
|
|
1
1
|
module Evrythng
|
2
2
|
# Defines HTTP request methods
|
3
3
|
module Request
|
4
|
+
# Perform an HTTP DELETE request
|
5
|
+
def delete(path, params={}, options={})
|
6
|
+
request(:delete, path, params, options)
|
7
|
+
end
|
8
|
+
|
4
9
|
# Perform an HTTP GET request
|
5
|
-
def get(path,
|
6
|
-
request(:get, path,
|
10
|
+
def get(path, params={}, options={})
|
11
|
+
request(:get, path, params, options)
|
7
12
|
end
|
8
13
|
|
9
14
|
# Perform an HTTP POST request
|
10
|
-
def post(path,
|
11
|
-
request(:post, path,
|
15
|
+
def post(path, params={}, options={})
|
16
|
+
request(:post, path, params, options)
|
12
17
|
end
|
13
18
|
|
14
19
|
# Perform an HTTP PUT request
|
15
|
-
def put(path,
|
16
|
-
request(:put, path,
|
17
|
-
end
|
18
|
-
|
19
|
-
# Perform an HTTP DELETE request
|
20
|
-
def delete(path, options={}, format=format)
|
21
|
-
request(:delete, path, options, format)
|
20
|
+
def put(path, params={}, options={})
|
21
|
+
request(:put, path, params, options)
|
22
22
|
end
|
23
23
|
|
24
24
|
private
|
25
25
|
|
26
26
|
# Perform an HTTP request
|
27
|
-
def request(method, path,
|
28
|
-
response = connection(
|
27
|
+
def request(method, path, params, options)
|
28
|
+
response = connection(options).send(method) do |request|
|
29
29
|
case method.to_sym
|
30
|
-
when :
|
31
|
-
request.url(path,
|
30
|
+
when :delete, :get
|
31
|
+
request.url(path, params)
|
32
32
|
when :post, :put
|
33
33
|
request.path = path
|
34
|
-
request.body =
|
34
|
+
request.body = params unless params.empty?
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
37
|
+
options[:raw] ? response : response.body
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'multi_json'
|
3
|
+
|
4
|
+
module Evrythng
|
5
|
+
module Response
|
6
|
+
class ParseJson < Faraday::Response::Middleware
|
7
|
+
|
8
|
+
def parse(body)
|
9
|
+
case body
|
10
|
+
when ''
|
11
|
+
nil
|
12
|
+
when 'true'
|
13
|
+
true
|
14
|
+
when 'false'
|
15
|
+
false
|
16
|
+
else
|
17
|
+
::MultiJson.decode(body)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'evrythng/error/bad_request'
|
3
|
+
require 'evrythng/error/enhance_your_calm'
|
4
|
+
require 'evrythng/error/forbidden'
|
5
|
+
require 'evrythng/error/not_acceptable'
|
6
|
+
require 'evrythng/error/not_found'
|
7
|
+
require 'evrythng/error/unauthorized'
|
8
|
+
|
9
|
+
module Evrythng
|
10
|
+
module Response
|
11
|
+
class RaiseClientError < Faraday::Response::Middleware
|
12
|
+
|
13
|
+
def on_complete(env)
|
14
|
+
case env[:status].to_i
|
15
|
+
when 400
|
16
|
+
raise Evrythng::Error::BadRequest.new(error_body(env[:body]), env[:response_headers])
|
17
|
+
when 401
|
18
|
+
raise Evrythng::Error::Unauthorized.new(error_body(env[:body]), env[:response_headers])
|
19
|
+
when 403
|
20
|
+
raise Evrythng::Error::Forbidden.new(error_body(env[:body]), env[:response_headers])
|
21
|
+
when 404
|
22
|
+
raise Evrythng::Error::NotFound.new(error_body(env[:body]), env[:response_headers])
|
23
|
+
when 406
|
24
|
+
raise Evrythng::Error::NotAcceptable.new(error_body(env[:body]), env[:response_headers])
|
25
|
+
when 420
|
26
|
+
raise Evrythng::Error::EnhanceYourCalm.new(error_body(env[:body]), env[:response_headers])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def error_body(body)
|
33
|
+
if body.nil?
|
34
|
+
''
|
35
|
+
elsif body['error']
|
36
|
+
body['error']
|
37
|
+
elsif body['errors']
|
38
|
+
first = Array(body['errors']).first
|
39
|
+
if first.kind_of?(Hash)
|
40
|
+
first['message'].chomp
|
41
|
+
else
|
42
|
+
first.chomp
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'evrythng/error/bad_gateway'
|
3
|
+
require 'evrythng/error/internal_server_error'
|
4
|
+
require 'evrythng/error/service_unavailable'
|
5
|
+
|
6
|
+
module Evrythng
|
7
|
+
module Response
|
8
|
+
class RaiseServerError < Faraday::Response::Middleware
|
9
|
+
|
10
|
+
def on_complete(env)
|
11
|
+
case env[:status].to_i
|
12
|
+
when 500
|
13
|
+
raise Evrythng::Error::InternalServerError.new("Something is technically wrong.", env[:response_headers])
|
14
|
+
when 502
|
15
|
+
raise Evrythng::Error::BadGateway.new("Evrythng is down or being upgraded.", env[:response_headers])
|
16
|
+
when 503
|
17
|
+
raise Evrythng::Error::ServiceUnavailable.new("Evrythng is over capacity.", env[:response_headers])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/evrythng/version.rb
CHANGED
data/lib/evrythng.rb
CHANGED
@@ -1,20 +1,18 @@
|
|
1
|
-
require 'evrythng/api'
|
2
1
|
require 'evrythng/client'
|
3
|
-
require 'evrythng/
|
4
|
-
require 'evrythng/error'
|
5
|
-
require 'evrythng/search'
|
2
|
+
require 'evrythng/config'
|
6
3
|
|
7
4
|
module Evrythng
|
8
|
-
extend
|
5
|
+
extend Config
|
6
|
+
|
9
7
|
class << self
|
10
8
|
# Alias for Evrythng::Client.new
|
11
9
|
#
|
12
10
|
# @return [Evrythng::Client]
|
13
|
-
def new(options={})
|
11
|
+
def new(options = {})
|
14
12
|
Evrythng::Client.new(options)
|
15
13
|
end
|
16
14
|
|
17
|
-
# Delegate to
|
15
|
+
# Delegate to Evrythng::Client
|
18
16
|
def method_missing(method, *args, &block)
|
19
17
|
return super unless new.respond_to?(method)
|
20
18
|
new.send(method, *args, &block)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evrythng
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,132 +9,102 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-01-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: maruku
|
16
|
-
requirement: &70184618669300 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0.6'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: *70184618669300
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: nokogiri
|
27
|
-
requirement: &70184618668780 !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '1.4'
|
33
|
-
type: :development
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *70184618668780
|
36
14
|
- !ruby/object:Gem::Dependency
|
37
15
|
name: rake
|
38
|
-
requirement: &
|
16
|
+
requirement: &70257168078720 !ruby/object:Gem::Requirement
|
39
17
|
none: false
|
40
18
|
requirements:
|
41
|
-
- -
|
19
|
+
- - ! '>='
|
42
20
|
- !ruby/object:Gem::Version
|
43
|
-
version: '0
|
21
|
+
version: '0'
|
44
22
|
type: :development
|
45
23
|
prerelease: false
|
46
|
-
version_requirements: *
|
24
|
+
version_requirements: *70257168078720
|
47
25
|
- !ruby/object:Gem::Dependency
|
48
26
|
name: rspec
|
49
|
-
requirement: &
|
27
|
+
requirement: &70257168078300 !ruby/object:Gem::Requirement
|
50
28
|
none: false
|
51
29
|
requirements:
|
52
|
-
- -
|
30
|
+
- - ! '>='
|
53
31
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
32
|
+
version: '0'
|
55
33
|
type: :development
|
56
34
|
prerelease: false
|
57
|
-
version_requirements: *
|
35
|
+
version_requirements: *70257168078300
|
58
36
|
- !ruby/object:Gem::Dependency
|
59
37
|
name: simplecov
|
60
|
-
requirement: &
|
38
|
+
requirement: &70257168077880 !ruby/object:Gem::Requirement
|
61
39
|
none: false
|
62
40
|
requirements:
|
63
|
-
- -
|
41
|
+
- - ! '>='
|
64
42
|
- !ruby/object:Gem::Version
|
65
|
-
version: '0
|
43
|
+
version: '0'
|
66
44
|
type: :development
|
67
45
|
prerelease: false
|
68
|
-
version_requirements: *
|
46
|
+
version_requirements: *70257168077880
|
69
47
|
- !ruby/object:Gem::Dependency
|
70
48
|
name: webmock
|
71
|
-
requirement: &
|
49
|
+
requirement: &70257168077460 !ruby/object:Gem::Requirement
|
72
50
|
none: false
|
73
51
|
requirements:
|
74
|
-
- -
|
52
|
+
- - ! '>='
|
75
53
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
54
|
+
version: '0'
|
77
55
|
type: :development
|
78
56
|
prerelease: false
|
79
|
-
version_requirements: *
|
57
|
+
version_requirements: *70257168077460
|
80
58
|
- !ruby/object:Gem::Dependency
|
81
59
|
name: yard
|
82
|
-
requirement: &
|
60
|
+
requirement: &70257168077040 !ruby/object:Gem::Requirement
|
83
61
|
none: false
|
84
62
|
requirements:
|
85
|
-
- -
|
63
|
+
- - ! '>='
|
86
64
|
- !ruby/object:Gem::Version
|
87
|
-
version: '0
|
65
|
+
version: '0'
|
88
66
|
type: :development
|
89
67
|
prerelease: false
|
90
|
-
version_requirements: *
|
68
|
+
version_requirements: *70257168077040
|
91
69
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
93
|
-
requirement: &
|
70
|
+
name: json
|
71
|
+
requirement: &70257168076620 !ruby/object:Gem::Requirement
|
94
72
|
none: false
|
95
73
|
requirements:
|
96
|
-
- -
|
74
|
+
- - ! '>='
|
97
75
|
- !ruby/object:Gem::Version
|
98
|
-
version: '
|
76
|
+
version: '0'
|
99
77
|
type: :development
|
100
78
|
prerelease: false
|
101
|
-
version_requirements: *
|
79
|
+
version_requirements: *70257168076620
|
102
80
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
104
|
-
requirement: &
|
81
|
+
name: activesupport
|
82
|
+
requirement: &70257168076080 !ruby/object:Gem::Requirement
|
105
83
|
none: false
|
106
84
|
requirements:
|
107
|
-
- -
|
85
|
+
- - ! '>='
|
108
86
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *70184618665000
|
113
|
-
- !ruby/object:Gem::Dependency
|
114
|
-
name: faraday
|
115
|
-
requirement: &70184618664480 !ruby/object:Gem::Requirement
|
116
|
-
none: false
|
117
|
-
requirements:
|
118
|
-
- - ~>
|
87
|
+
version: 2.3.9
|
88
|
+
- - <
|
119
89
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
90
|
+
version: '4'
|
121
91
|
type: :runtime
|
122
92
|
prerelease: false
|
123
|
-
version_requirements: *
|
93
|
+
version_requirements: *70257168076080
|
124
94
|
- !ruby/object:Gem::Dependency
|
125
|
-
name:
|
126
|
-
requirement: &
|
95
|
+
name: faraday
|
96
|
+
requirement: &70257168075320 !ruby/object:Gem::Requirement
|
127
97
|
none: false
|
128
98
|
requirements:
|
129
99
|
- - ~>
|
130
100
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
101
|
+
version: 0.8.0.rc2
|
132
102
|
type: :runtime
|
133
103
|
prerelease: false
|
134
|
-
version_requirements: *
|
104
|
+
version_requirements: *70257168075320
|
135
105
|
- !ruby/object:Gem::Dependency
|
136
106
|
name: multi_json
|
137
|
-
requirement: &
|
107
|
+
requirement: &70257168074860 !ruby/object:Gem::Requirement
|
138
108
|
none: false
|
139
109
|
requirements:
|
140
110
|
- - ~>
|
@@ -142,20 +112,8 @@ dependencies:
|
|
142
112
|
version: 1.0.0
|
143
113
|
type: :runtime
|
144
114
|
prerelease: false
|
145
|
-
version_requirements: *
|
146
|
-
|
147
|
-
name: simple_oauth
|
148
|
-
requirement: &70184618662980 !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
|
-
requirements:
|
151
|
-
- - ~>
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: 0.1.5
|
154
|
-
type: :runtime
|
155
|
-
prerelease: false
|
156
|
-
version_requirements: *70184618662980
|
157
|
-
description: A Ruby wrapper for Evrythng API. Just proof of concept, do not consider
|
158
|
-
this as a solid library.
|
115
|
+
version_requirements: *70257168074860
|
116
|
+
description: A Ruby wrapper for Evrythng API.
|
159
117
|
email: graf.otodrakula@gmail.com
|
160
118
|
executables: []
|
161
119
|
extensions: []
|
@@ -167,24 +125,35 @@ files:
|
|
167
125
|
- Rakefile
|
168
126
|
- evrythng.gemspec
|
169
127
|
- lib/evrythng.rb
|
170
|
-
- lib/evrythng/
|
171
|
-
- lib/evrythng/authentication.rb
|
128
|
+
- lib/evrythng/authenticatable.rb
|
172
129
|
- lib/evrythng/client.rb
|
173
130
|
- lib/evrythng/client/collections.rb
|
131
|
+
- lib/evrythng/client/properties.rb
|
132
|
+
- lib/evrythng/client/search.rb
|
174
133
|
- lib/evrythng/client/thngs.rb
|
175
|
-
- lib/evrythng/
|
134
|
+
- lib/evrythng/config.rb
|
176
135
|
- lib/evrythng/connection.rb
|
136
|
+
- lib/evrythng/core_ext/hash.rb
|
177
137
|
- lib/evrythng/error.rb
|
138
|
+
- lib/evrythng/error/bad_gateway.rb
|
139
|
+
- lib/evrythng/error/bad_request.rb
|
140
|
+
- lib/evrythng/error/client_error.rb
|
141
|
+
- lib/evrythng/error/enhance_your_calm.rb
|
142
|
+
- lib/evrythng/error/forbidden.rb
|
143
|
+
- lib/evrythng/error/internal_server_error.rb
|
144
|
+
- lib/evrythng/error/not_acceptable.rb
|
145
|
+
- lib/evrythng/error/not_found.rb
|
146
|
+
- lib/evrythng/error/server_error.rb
|
147
|
+
- lib/evrythng/error/service_unavailable.rb
|
148
|
+
- lib/evrythng/error/unauthorized.rb
|
178
149
|
- lib/evrythng/request.rb
|
179
|
-
- lib/evrythng/
|
150
|
+
- lib/evrythng/request/gateway.rb
|
151
|
+
- lib/evrythng/request/token_authentication.rb
|
152
|
+
- lib/evrythng/response/parse_json.rb
|
153
|
+
- lib/evrythng/response/raise_client_error.rb
|
154
|
+
- lib/evrythng/response/raise_server_error.rb
|
180
155
|
- lib/evrythng/version.rb
|
181
|
-
|
182
|
-
- lib/faraday/request/evrythng_oauth.rb
|
183
|
-
- lib/faraday/request/gateway.rb
|
184
|
-
- lib/faraday/request/multipart_with_file.rb
|
185
|
-
- lib/faraday/response/raise_http_4xx.rb
|
186
|
-
- lib/faraday/response/raise_http_5xx.rb
|
187
|
-
homepage: http://github.com/bai/evrythng-ruby
|
156
|
+
homepage: http://github.com/bai/evrythng
|
188
157
|
licenses: []
|
189
158
|
post_install_message:
|
190
159
|
rdoc_options: []
|
@@ -204,8 +173,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
173
|
version: '0'
|
205
174
|
requirements: []
|
206
175
|
rubyforge_project:
|
207
|
-
rubygems_version: 1.8.
|
176
|
+
rubygems_version: 1.8.15
|
208
177
|
signing_key:
|
209
178
|
specification_version: 3
|
210
|
-
summary:
|
179
|
+
summary: Evrythng API wrapper
|
211
180
|
test_files: []
|
data/lib/evrythng/api.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'evrythng/authentication'
|
2
|
-
require 'evrythng/configuration'
|
3
|
-
require 'evrythng/connection'
|
4
|
-
require 'evrythng/request'
|
5
|
-
|
6
|
-
module Evrythng
|
7
|
-
# @private
|
8
|
-
class API
|
9
|
-
include Connection
|
10
|
-
include Request
|
11
|
-
include Authentication
|
12
|
-
|
13
|
-
# @private
|
14
|
-
attr_accessor *Configuration::VALID_OPTIONS_KEYS
|
15
|
-
|
16
|
-
# Creates a new API
|
17
|
-
def initialize(options={})
|
18
|
-
options = Evrythng.options.merge(options)
|
19
|
-
Configuration::VALID_OPTIONS_KEYS.each do |key|
|
20
|
-
send("#{key}=", options[key])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Evrythng
|
2
|
-
# @private
|
3
|
-
module Authentication
|
4
|
-
private
|
5
|
-
|
6
|
-
# Authentication hash
|
7
|
-
#
|
8
|
-
# @return [Hash]
|
9
|
-
def authentication
|
10
|
-
{
|
11
|
-
:consumer_key => consumer_key,
|
12
|
-
:consumer_secret => consumer_secret,
|
13
|
-
:token => oauth_token,
|
14
|
-
:token_secret => oauth_token_secret
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
# Check whether user is authenticated
|
19
|
-
#
|
20
|
-
# @return [Boolean]
|
21
|
-
def authenticated?
|
22
|
-
authentication.values.all?
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
require 'faraday'
|
2
|
-
require 'evrythng/version'
|
3
|
-
|
4
|
-
module Evrythng
|
5
|
-
# Defines constants and methods related to configuration
|
6
|
-
module Configuration
|
7
|
-
# An array of valid keys in the options hash when configuring a {Evrythng::API}
|
8
|
-
VALID_OPTIONS_KEYS = [
|
9
|
-
:adapter,
|
10
|
-
:consumer_key,
|
11
|
-
:consumer_secret,
|
12
|
-
:username,
|
13
|
-
:password,
|
14
|
-
:api_endpoint,
|
15
|
-
:format,
|
16
|
-
:gateway,
|
17
|
-
:oauth_token,
|
18
|
-
:oauth_token_secret,
|
19
|
-
:proxy,
|
20
|
-
:search_endpoint,
|
21
|
-
:user_agent].freeze
|
22
|
-
|
23
|
-
# An array of valid request/response formats
|
24
|
-
VALID_FORMATS = [
|
25
|
-
'vnd.evrythng-v1+json'
|
26
|
-
].freeze
|
27
|
-
|
28
|
-
# The adapter that will be used to connect if none is set
|
29
|
-
#
|
30
|
-
# @note The default faraday adapter is Net::HTTP.
|
31
|
-
DEFAULT_ADAPTER = Faraday.default_adapter
|
32
|
-
|
33
|
-
# By default, don't set an application key
|
34
|
-
DEFAULT_CONSUMER_KEY = nil
|
35
|
-
|
36
|
-
# By default, don't set an application secret
|
37
|
-
DEFAULT_CONSUMER_SECRET = nil
|
38
|
-
|
39
|
-
# By default, don't set a username
|
40
|
-
DEFAULT_USERNAME = nil
|
41
|
-
|
42
|
-
# By default, don't set password
|
43
|
-
DEFAULT_PASSWORD = nil
|
44
|
-
|
45
|
-
# The endpoint that will be used to connect if none is set
|
46
|
-
DEFAULT_ENDPOINT = 'http://evrythng.net'.freeze
|
47
|
-
|
48
|
-
# The response format appended to the path and sent in the 'Accept' header if none is set
|
49
|
-
DEFAULT_FORMAT = 'vnd.evrythng-v1+json'.freeze
|
50
|
-
|
51
|
-
# By default, don't set a user oauth token
|
52
|
-
DEFAULT_OAUTH_TOKEN = nil
|
53
|
-
|
54
|
-
# By default, don't set a user oauth secret
|
55
|
-
DEFAULT_OAUTH_TOKEN_SECRET = nil
|
56
|
-
|
57
|
-
# By default, don't use a proxy server
|
58
|
-
DEFAULT_PROXY = nil
|
59
|
-
|
60
|
-
# The user agent that will be sent to the API endpoint if none is set
|
61
|
-
DEFAULT_USER_AGENT = "Evrythng Ruby Gem #{Evrythng::VERSION}".freeze
|
62
|
-
|
63
|
-
DEFAULT_GATEWAY = nil
|
64
|
-
|
65
|
-
# @private
|
66
|
-
attr_accessor *VALID_OPTIONS_KEYS
|
67
|
-
|
68
|
-
# When this module is extended, set all configuration options to their default values
|
69
|
-
def self.extended(base)
|
70
|
-
base.reset
|
71
|
-
end
|
72
|
-
|
73
|
-
# Convenience method to allow configuration options to be set in a block
|
74
|
-
def configure
|
75
|
-
yield self
|
76
|
-
end
|
77
|
-
|
78
|
-
# Create a hash of options and their values
|
79
|
-
def options
|
80
|
-
options = {}
|
81
|
-
VALID_OPTIONS_KEYS.each { |k| options[k] = send(k) }
|
82
|
-
options
|
83
|
-
end
|
84
|
-
|
85
|
-
# Reset all configuration options to defaults
|
86
|
-
def reset
|
87
|
-
self.adapter = DEFAULT_ADAPTER
|
88
|
-
self.consumer_key = DEFAULT_CONSUMER_KEY
|
89
|
-
self.consumer_secret = DEFAULT_CONSUMER_SECRET
|
90
|
-
self.username = DEFAULT_USERNAME
|
91
|
-
self.password = DEFAULT_PASSWORD
|
92
|
-
self.api_endpoint = DEFAULT_ENDPOINT
|
93
|
-
self.format = DEFAULT_FORMAT
|
94
|
-
self.oauth_token = DEFAULT_OAUTH_TOKEN
|
95
|
-
self.oauth_token_secret = DEFAULT_OAUTH_TOKEN_SECRET
|
96
|
-
self.proxy = DEFAULT_PROXY
|
97
|
-
self.user_agent = DEFAULT_USER_AGENT
|
98
|
-
self.gateway = DEFAULT_GATEWAY
|
99
|
-
self
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|