bubbles-rest-client 0.2.0 → 0.6.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.
@@ -1,6 +1,6 @@
1
1
  module Bubbles
2
2
  class RestEnvironment
3
- attr_accessor :scheme, :host, :port, :api_key
3
+ attr_accessor :host, :port, :api_key, :api_key_name
4
4
 
5
5
  ##
6
6
  # Construct a new instance of +RestEnvironment+.
@@ -9,17 +9,59 @@ module Bubbles
9
9
  # @param [String] host The host to communicate with.
10
10
  # @param [Integer] port The port on which the communication channel should operate.
11
11
  # @param [String] api_key (Optional) The API key to use to identify your client with the API. Defaults to +nil+.
12
+ # @param [String] api_key_name (Optional) The name of the header that will specify the API key. Defaults to +"X-API-Key"+.
12
13
  #
13
- def initialize(scheme='https', host='api.foamfactory.com', port=443, api_key=nil)
14
+ def initialize(scheme='https', host='api.foamfactory.com', port=443, api_key=nil, api_key_name='X-API-Key')
14
15
  @scheme = scheme
15
16
  @port = port
16
17
 
17
- if @scheme == 'http' && @port == 443
18
+ if @scheme == 'http' && @port == nil
18
19
  @port = 80
20
+ elsif @scheme == 'https' && @port == nil
21
+ @port = 443
19
22
  end
20
23
 
21
24
  @host = host
22
25
  @api_key = api_key
26
+ @api_key_name = api_key_name
27
+ end
28
+
29
+ ##
30
+ # Retrieve the name of the API key to be used.
31
+ #
32
+ # This will be the "key" portion of the key-value of the API key header.
33
+ #
34
+ # @return [String] The API key name, if set; "X-API-Key", otherwise.
35
+ #
36
+ def api_key_name
37
+ @api_key_name
38
+ end
39
+
40
+ ##
41
+ # Retrieve an API key from this +RestEnvironment+, but only if a specific +Endpoint+ requires it.
42
+ #
43
+ # If an +Endpoint+ has +api_key_required+ set to +true+, this method will return the API for the current
44
+ # +RestEnvironment+. If not, then it will return +nil+, rather than just blindly returning the API key for every
45
+ # possible retrieval, even if the +Endpoint+ doesn't require it.
46
+ #
47
+ # @return [String] The API key for this +RestEnvironment+, if the specified +Endpoint+ requires it; +nil+,
48
+ # otherwise.
49
+ #
50
+ def get_api_key_if_needed(endpoint)
51
+ if endpoint.api_key_required?
52
+ @api_key
53
+ else
54
+ nil
55
+ end
56
+ end
57
+
58
+ ##
59
+ # Retrieve the scheme of the current +RestEnvironment+, as a +Symbol+.
60
+ #
61
+ # @return [Symbol] The scheme of the current +RestEnvironment+, as a +Symbol+.
62
+ #
63
+ def scheme
64
+ @scheme.to_s
23
65
  end
24
66
  end
25
67
  end
@@ -7,7 +7,7 @@ module Bubbles
7
7
  end
8
8
 
9
9
  def self.version_name
10
- '0.2.0'
10
+ '0.6.0'
11
11
  end
12
12
 
13
13
  def self.version_code
@@ -0,0 +1,22 @@
1
+ require 'rspec/core/rake_task'
2
+ require 'simplecov'
3
+ require 'os'
4
+
5
+ namespace :spec do
6
+ desc "Create rspec coverage"
7
+ task :coverage do
8
+ ENV['COVERAGE'] = 'true'
9
+ Rake::Task["spec"].execute
10
+ end
11
+
12
+ namespace :coverage do
13
+ desc 'View coverage information'
14
+ task :view => [:coverage] do
15
+ if OS.mac?
16
+ `open coverage/index.html`
17
+ elsif OS.posix?
18
+ `sensible-browser coverage/index.html`
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ begin
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ rescue LoadError
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bubbles-rest-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Johnson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-28 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0
19
+ version: 2.1.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0
26
+ version: 2.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '3.5'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '3.5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: vcr
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3.8'
125
+ - !ruby/object:Gem::Dependency
126
+ name: os
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: addressable
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -158,9 +172,12 @@ executables: []
158
172
  extensions: []
159
173
  extra_rdoc_files: []
160
174
  files:
175
+ - ".github/FUNDING.yml"
161
176
  - ".gitignore"
177
+ - ".travis.yml"
178
+ - CODE_OF_CONDUCT.md
179
+ - CONTRIBUTING.md
162
180
  - Gemfile
163
- - Gemfile.lock
164
181
  - LICENSE
165
182
  - README.md
166
183
  - Rakefile
@@ -171,6 +188,8 @@ files:
171
188
  - lib/bubbles/rest_client_resources.rb
172
189
  - lib/bubbles/rest_environment.rb
173
190
  - lib/bubbles/version.rb
191
+ - lib/tasks/coverage.rake
192
+ - lib/tasks/spec.rake
174
193
  homepage: https://github.com/FoamFactory/bubbles
175
194
  licenses:
176
195
  - MPL-2.0
@@ -191,8 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
210
  - !ruby/object:Gem::Version
192
211
  version: '0'
193
212
  requirements: []
194
- rubyforge_project:
195
- rubygems_version: 2.6.11
213
+ rubygems_version: 3.0.8
196
214
  signing_key:
197
215
  specification_version: 4
198
216
  summary: A gem for easily defining client REST interfaces in Ruby
@@ -1,85 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bubbles-rest-client (0.2.0)
5
- addressable (~> 2.5)
6
- rest-client (~> 2.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- addressable (2.5.2)
12
- public_suffix (>= 2.0.2, < 4.0)
13
- ansi (1.5.0)
14
- builder (3.2.3)
15
- crack (0.4.3)
16
- safe_yaml (~> 1.0.0)
17
- diff-lcs (1.3)
18
- docile (1.3.1)
19
- domain_name (0.5.20180417)
20
- unf (>= 0.0.5, < 1.0.0)
21
- hashdiff (0.3.4)
22
- http-cookie (1.0.3)
23
- domain_name (~> 0.5)
24
- json (2.0.2)
25
- mime-types (3.2.2)
26
- mime-types-data (~> 3.2015)
27
- mime-types-data (3.2019.0331)
28
- minitest (5.11.3)
29
- minitest-reporters (1.1.19)
30
- ansi
31
- builder
32
- minitest (>= 5.0)
33
- ruby-progressbar
34
- netrc (0.11.0)
35
- public_suffix (3.0.3)
36
- rake (10.5.0)
37
- rest-client (2.0.2)
38
- http-cookie (>= 1.0.2, < 2.0)
39
- mime-types (>= 1.16, < 4.0)
40
- netrc (~> 0.8)
41
- rspec (3.8.0)
42
- rspec-core (~> 3.8.0)
43
- rspec-expectations (~> 3.8.0)
44
- rspec-mocks (~> 3.8.0)
45
- rspec-core (3.8.0)
46
- rspec-support (~> 3.8.0)
47
- rspec-expectations (3.8.2)
48
- diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.8.0)
50
- rspec-mocks (3.8.0)
51
- diff-lcs (>= 1.2.0, < 2.0)
52
- rspec-support (~> 3.8.0)
53
- rspec-support (3.8.0)
54
- ruby-progressbar (1.9.0)
55
- safe_yaml (1.0.4)
56
- simplecov (0.16.1)
57
- docile (~> 1.1)
58
- json (>= 1.8, < 3)
59
- simplecov-html (~> 0.10.0)
60
- simplecov-html (0.10.2)
61
- unf (0.1.4)
62
- unf_ext
63
- unf_ext (0.0.7.6)
64
- vcr (3.0.3)
65
- webmock (3.0.1)
66
- addressable (>= 2.3.6)
67
- crack (>= 0.3.2)
68
- hashdiff
69
-
70
- PLATFORMS
71
- ruby
72
-
73
- DEPENDENCIES
74
- bubbles-rest-client!
75
- bundler (~> 2.0.0)
76
- minitest (~> 5.0)
77
- minitest-reporters (~> 1.1)
78
- rake (~> 10.0)
79
- rspec (~> 3.8)
80
- simplecov (~> 0.16)
81
- vcr (~> 3.0)
82
- webmock (~> 3.0)
83
-
84
- BUNDLED WITH
85
- 2.0.1