contentful 0.8.0 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6b4c5fc8a4dc2ae13b7ee0fe9e0444e995b921bf
4
- data.tar.gz: 9f38b091341e8b0137292070a7ae9b10ccdcab7d
3
+ metadata.gz: 646bf441930ec6ed1182365e92ec26213a7c1326
4
+ data.tar.gz: fc8535671280aed058b63ade0bb1539bfb61a6df
5
5
  SHA512:
6
- metadata.gz: b09b93dab0ba708a502cb898dd3dd05f23693053b517594f2f18faf2b0955ddc468868ccb9828eb9fdff50ebf951d45310d5b29e4e373bda90969dbeec714fe3
7
- data.tar.gz: 3d0aaeca5389a70b4d7e957e982996dbf16e9593a5fb6df3f529ce6ffc7474c07b669460d300c681406edc57dd86d6ec257b8b6e309a107608bad5234b1f1e4c
6
+ metadata.gz: 5f16eec5e3b322607af9f58d26e64baef7f1d1d2fdc32ebbd5404618c02692ce8bd517b0b28f0877a535614784abfc906af2d7c2a8e810744b0106cd5a8ea81f
7
+ data.tar.gz: be5ccf489cb21a2e1e9f98eeb155cf30be2f655cdc850cef208498310f111dcf1eaaf56973db5c727fc1e6ef3a1f3316d563fa70ff996befb5e26a3f020747f7
data/.gitignore CHANGED
@@ -1,5 +1,7 @@
1
1
  pkg
2
+ doc/
3
+ .yardoc/
2
4
  coverage
3
5
  Gemfile.lock
4
6
  .idea
5
- *.DS_Store
7
+ *.DS_Store
data/.rubocop.yml ADDED
@@ -0,0 +1,25 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ Encoding:
4
+ Enabled: false
5
+
6
+ Metrics/ClassLength:
7
+ CountComments: false
8
+
9
+ Metrics/MethodLength:
10
+ CountComments: false
11
+
12
+ AllCops:
13
+ Exclude:
14
+ - contentful.gemspec
15
+ - spec/**/*
16
+ - examples/**/*
17
+ - Guardfile
18
+ - Gemfile
19
+ - Rakefile
20
+
21
+ Metrics/ClassLength:
22
+ Max: 230
23
+
24
+ Style/MutableConstant:
25
+ Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,35 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2016-02-02 13:30:13 -0300 using RuboCop version 0.36.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 6
10
+ Metrics/AbcSize:
11
+ Max: 38
12
+
13
+ # Offense count: 5
14
+ Metrics/CyclomaticComplexity:
15
+ Max: 8
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
19
+ # URISchemes: http, https
20
+ Metrics/LineLength:
21
+ Max: 142
22
+
23
+ # Offense count: 12
24
+ # Configuration parameters: CountComments.
25
+ Metrics/MethodLength:
26
+ Max: 27
27
+
28
+ # Offense count: 2
29
+ # Configuration parameters: CountComments.
30
+ Metrics/ModuleLength:
31
+ Max: 499
32
+
33
+ # Offense count: 4
34
+ Metrics/PerceivedComplexity:
35
+ Max: 8
data/.travis.yml CHANGED
@@ -9,3 +9,8 @@ rvm:
9
9
  notifications:
10
10
  slack:
11
11
  secure: Zr3mKCiTb0vaTD4MPtTG8BbyYyErFuoxioM25QyrqePKVkDFeZC1MtGmg5klQQrJiWTKZPa/zB8NAHYkoUxg9I+z15JK0hYfz9KRubEpCrXCaqTC9Vzq88kJ3LN8YsTyBF66izaBH2KLsOfaJRxwplFzZqgpg4GG2DUBPtrGtes=
12
+ before_install: gem install bundler -v 1.10.6
13
+ script: bundle exec rake rspec_rubocop
14
+ matrix:
15
+ allow_failures:
16
+ - rvm: jruby
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --no-private
2
+ -
3
+ CHANGELOG.md
4
+ LICENSE.txt
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Change Log
2
2
  ## Unreleased
3
3
 
4
+ ## 0.9.0
5
+ ### Added
6
+ * Added `Contentful::Resource::CustomResource` to automatically map fields to accessors [#79](https://github.com/contentful/contentful.rb/issues/79)
7
+ * Added `#raw` to `Contentful::Resource` for easier Marshalling
8
+ * Added documentation regarding locales
9
+
10
+ ### Changed
11
+ * Changed Documentation Format to YARD
12
+
13
+ ### Fixed
14
+ * Fixed Marshalling for Custom Resource Classes [#80](https://github.com/contentful/contentful.rb/issues/80)
15
+
4
16
  ## 0.8.0
5
17
  ### Changed
6
18
  * Unified Locale Handling [#73](https://github.com/contentful/contentful.rb/issues/73)
data/Guardfile CHANGED
@@ -1,42 +1,24 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
1
+ group :green_red_refactor, halt_on_fail: true do
2
+ guard :rspec, cmd: "bundle exec rspec" do
3
+ require "guard/rspec/dsl"
4
+ dsl = Guard::RSpec::Dsl.new(self)
3
5
 
4
- ## Uncomment and set this to only include directories you want to watch
5
- # directories %w(app lib config test spec features) \
6
- # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
6
+ # Feel free to open issues for suggestions and improvements
7
7
 
8
- ## Note: if you are using the `directories` clause above and you are not
9
- ## watching the project directory ('.'), then you will want to move
10
- ## the Guardfile to a watched dir and symlink it back, e.g.
11
- #
12
- # $ mkdir config
13
- # $ mv Guardfile config/
14
- # $ ln -s config/Guardfile .
15
- #
16
- # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
8
+ # RSpec files
9
+ rspec = dsl.rspec
10
+ watch(rspec.spec_helper) { rspec.spec_dir }
11
+ watch(rspec.spec_support) { rspec.spec_dir }
12
+ watch(rspec.spec_files)
17
13
 
18
- # Note: The cmd option is now required due to the increasing number of ways
19
- # rspec may be run, below are examples of the most common uses.
20
- # * bundler: 'bundle exec rspec'
21
- # * bundler binstubs: 'bin/rspec'
22
- # * spring: 'bin/rspec' (This will use spring if running and you have
23
- # installed the spring binstubs per the docs)
24
- # * zeus: 'zeus rspec' (requires the server to be started separately)
25
- # * 'just' rspec: 'rspec'
14
+ # Ruby files
15
+ ruby = dsl.ruby
16
+ dsl.watch_spec_files_for(ruby.lib_files)
17
+ end
26
18
 
27
- guard :rspec, cmd: "bundle exec rspec" do
28
- require "guard/rspec/dsl"
29
- dsl = Guard::RSpec::Dsl.new(self)
19
+ guard :yard, cmd: "yard doc" do
20
+ end
30
21
 
31
- # Feel free to open issues for suggestions and improvements
32
-
33
- # RSpec files
34
- rspec = dsl.rspec
35
- watch(rspec.spec_helper) { rspec.spec_dir }
36
- watch(rspec.spec_support) { rspec.spec_dir }
37
- watch(rspec.spec_files)
38
-
39
- # Ruby files
40
- ruby = dsl.ruby
41
- dsl.watch_spec_files_for(ruby.lib_files)
22
+ guard :rubocop, cmd: "rubocop" do
23
+ end
42
24
  end
data/README.md CHANGED
@@ -100,6 +100,27 @@ Dynamic entries will have getter classes for the fields and do type conversions
100
100
 
101
101
  The `:auto` mode will fetch all content types on initialization. If you want to do it by hand later, you will need to set the option to `:manual` and call `client.update_dynamic_entry_cache!` to initialize all dynamic entries.
102
102
 
103
+ #### Using different locales
104
+
105
+ Entries can have multiple locales, by default, the client only fetches the entry with only its default locale.
106
+ If you want to fetch a different locale you can do the following:
107
+
108
+ ```ruby
109
+ entries = client.entries(locale: 'de-DE')
110
+ ```
111
+
112
+ Then all the fields will be fetched for the requested locale.
113
+
114
+ Contentful Delivery API also allows to fetch all locales, you can do so by doing:
115
+
116
+ ```ruby
117
+ entries = client.entries(content_type: 'cat', locale: '*')
118
+
119
+ # assuming the entry has a field called name
120
+ my_spanish_name = entries.first.fields('es-AR')[:name]
121
+ ```
122
+
123
+ When requesting multiple locales, the object accessor shortcuts only work for the default locale.
103
124
 
104
125
  ### Arrays
105
126
 
@@ -277,6 +298,19 @@ client = Contentful::Client.new(
277
298
  client.entry('nyancat') # is instance of Cat
278
299
  ```
279
300
 
301
+ If you want to use the `property :field_name` syntax, you can do it the following way:
302
+
303
+ ```ruby
304
+ class Cat < Contentful::Entry
305
+ include Contentful::Resource::CustomResource
306
+
307
+ property :name
308
+ property :lives
309
+ property :bestFriend
310
+ # ...
311
+ end
312
+ ```
313
+
280
314
  ## Synchronization
281
315
 
282
316
  The client also includes a wrapper for the synchronization endpoint. You can initialize it with the options described in the [Delivery API Documentation](https://www.contentful.com/developers/documentation/content-delivery-api/#sync) or an URL you received from a previous sync:
data/Rakefile CHANGED
@@ -24,5 +24,10 @@ Gem::Tasks.new
24
24
  require 'rspec/core/rake_task'
25
25
  RSpec::Core::RakeTask.new
26
26
 
27
+ require 'rubocop/rake_task'
28
+ RuboCop::RakeTask.new
29
+
30
+ task rspec_rubocop: %w(spec rubocop)
31
+
27
32
  task test: :spec
28
33
  task default: :spec
data/contentful.gemspec CHANGED
@@ -24,6 +24,9 @@ Gem::Specification.new do |gem|
24
24
 
25
25
  gem.add_development_dependency 'guard'
26
26
  gem.add_development_dependency 'guard-rspec'
27
+ gem.add_development_dependency 'guard-rubocop'
28
+ gem.add_development_dependency 'guard-yard'
29
+ gem.add_development_dependency 'rubocop'
27
30
  gem.add_development_dependency 'rspec', '~> 2'
28
31
  gem.add_development_dependency 'rr'
29
32
  gem.add_development_dependency 'vcr'
data/lib/contentful.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  require 'contentful/version'
2
2
  require 'contentful/support'
3
3
  require 'contentful/client'
4
+ require 'contentful/resource/custom_resource'
@@ -3,9 +3,10 @@ require_relative 'resource/array_like'
3
3
 
4
4
  module Contentful
5
5
  # Resource Class for Arrays (e.g. search results)
6
- # https://www.contentful.com/developers/documentation/content-delivery-api/#arrays
7
- # It also provides an #each method and includes Ruby's Enumerable module (gives you methods like #min, #first, etc)
6
+ # @see _ https://www.contentful.com/developers/documentation/content-delivery-api/#arrays
7
+ # @note It also provides an #each method and includes Ruby's Enumerable module (gives you methods like #min, #first, etc)
8
8
  class Array
9
+ # @private
9
10
  DEFAULT_LIMIT = 100
10
11
 
11
12
  include Contentful::Resource
@@ -18,6 +19,8 @@ module Contentful
18
19
  property :items
19
20
 
20
21
  # Simplifies pagination
22
+ #
23
+ # @return [Contentful::Array, false]
21
24
  def next_page
22
25
  if request
23
26
  new_skip = (skip || 0) + (limit || DEFAULT_LIMIT)
@@ -9,20 +9,23 @@ module Contentful
9
9
  include Contentful::Resource::SystemProperties
10
10
  include Contentful::Resource::AssetFields
11
11
 
12
- # Returns the image url of an asset
13
- # Allows you to pass in the following options for image resizing:
14
- # :width
15
- # :height
16
- # :format
17
- # :quality
18
- # See https://www.contentful.com/developers/documentation/content-delivery-api/#image-asset-resizing
12
+ # Generates a URL for the Contentful Image API
13
+ #
14
+ # @param [Hash] options
15
+ # @option options [Integer] :width
16
+ # @option options [Integer] :height
17
+ # @option options [String] :format
18
+ # @option options [String] :quality
19
+ # @see _ https://www.contentful.com/developers/documentation/content-delivery-api/#image-asset-resizing
20
+ #
21
+ # @return [String] Image API URL
19
22
  def image_url(options = {})
20
23
  query = {
21
- w: options[:w] || options[:width],
22
- h: options[:h] || options[:height],
23
- fm: options[:fm] || options[:format],
24
- q: options[:q] || options[:quality],
25
- f: options[:f] || options[:focus],
24
+ w: options[:w] || options[:width],
25
+ h: options[:h] || options[:height],
26
+ fm: options[:fm] || options[:format],
27
+ q: options[:q] || options[:quality],
28
+ f: options[:f] || options[:focus],
26
29
  fit: options[:fit]
27
30
  }.reject { |_k, v| v.nil? }
28
31
 
@@ -11,6 +11,7 @@ module Contentful
11
11
  # for querying resources from this space.
12
12
  # See README for details
13
13
  class Client
14
+ # Default configuration for Contentful::Client
14
15
  DEFAULT_CONFIGURATION = {
15
16
  secure: true,
16
17
  raise_errors: true,
@@ -35,6 +36,7 @@ module Contentful
35
36
  attr_reader :configuration, :dynamic_entry_cache, :logger, :proxy
36
37
 
37
38
  # Wraps the actual HTTP request via proxy
39
+ # @private
38
40
  def self.get_http(url, query, headers = {}, proxy = {})
39
41
  if proxy[:host]
40
42
  HTTP[headers].via(proxy[:host], proxy[:port], proxy[:username], proxy[:password]).get(url, params: query)
@@ -43,6 +45,25 @@ module Contentful
43
45
  end
44
46
  end
45
47
 
48
+ # @see _ https://github.com/contentful/contentful.rb#client-configuration-options
49
+ # @param [Hash] given_configuration
50
+ # @option given_configuration [String] :space Required
51
+ # @option given_configuration [String] :access_token Required
52
+ # @option given_configuration [String] :api_url Modifying this to 'preview.contentful.com' gives you access to our Preview API
53
+ # @option given_configuration [String] :api_version
54
+ # @option given_configuration [String] :default_locale
55
+ # @option given_configuration [String] :proxy_host
56
+ # @option given_configuration [String] :proxy_username
57
+ # @option given_configuration [String] :proxy_password
58
+ # @option given_configuration [Number] :proxy_port
59
+ # @option given_configuration [Boolean] :gzip_encoded
60
+ # @option given_configuration [Boolean] :raw_mode
61
+ # @option given_configuration [false, ::Logger] :logger
62
+ # @option given_configuration [::Logger::DEBUG, ::Logger::INFO, ::Logger::WARN, ::Logger::ERROR] :log_level
63
+ # @option given_configuration [Boolean] :raise_errors
64
+ # @option given_configuration [::Array<String>] :dynamic_entries
65
+ # @option given_configuration [::Hash<String, Contentful::Resource>] :resource_mapping
66
+ # @option given_configuration [::Hash<String, Contentful::Resource>] :entry_mapping
46
67
  def initialize(given_configuration = {})
47
68
  @configuration = default_configuration.merge(given_configuration)
48
69
  normalize_configuration!
@@ -56,11 +77,13 @@ module Contentful
56
77
  end
57
78
  end
58
79
 
80
+ # @private
59
81
  def setup_logger
60
82
  @logger = configuration[:logger]
61
83
  logger.level = configuration[:log_level] if logger
62
84
  end
63
85
 
86
+ # @private
64
87
  def proxy_params
65
88
  {
66
89
  host: configuration[:proxy_host],
@@ -71,65 +94,85 @@ module Contentful
71
94
  end
72
95
 
73
96
  # Returns the default configuration
97
+ # @private
74
98
  def default_configuration
75
99
  DEFAULT_CONFIGURATION.dup
76
100
  end
77
101
 
78
102
  # Gets the client's space
79
- # Takes an optional hash of query options
80
- # Returns a Contentful::Space
103
+ #
104
+ # @param [Hash] query
105
+ #
106
+ # @return [Contentful::Space]
81
107
  def space(query = {})
82
108
  Request.new(self, '', query).get
83
109
  end
84
110
 
85
111
  # Gets a specific content type
86
- # Takes an id and an optional hash of query options
87
- # Returns a Contentful::ContentType
112
+ #
113
+ # @param [String] id
114
+ # @param [Hash] query
115
+ #
116
+ # @return [Contentful::ContentType]
88
117
  def content_type(id, query = {})
89
118
  Request.new(self, '/content_types', query, id).get
90
119
  end
91
120
 
92
121
  # Gets a collection of content types
93
- # Takes an optional hash of query options
94
- # Returns a Contentful::Array of Contentful::ContentType
122
+ #
123
+ # @param [Hash] query
124
+ #
125
+ # @return [Contentful::Array<Contentful::ContentType>]
95
126
  def content_types(query = {})
96
127
  Request.new(self, '/content_types', query).get
97
128
  end
98
129
 
99
130
  # Gets a specific entry
100
- # Takes an id and an optional hash of query options
101
- # Returns a Contentful::Entry
131
+ #
132
+ # @param [String] id
133
+ # @param [Hash] query
134
+ #
135
+ # @return [Contentful::Entry]
102
136
  def entry(id, query = {})
103
137
  Request.new(self, '/entries', query, id).get
104
138
  end
105
139
 
106
140
  # Gets a collection of entries
107
- # Takes an optional hash of query options
108
- # Returns a Contentful::Array of Contentful::Entry
141
+ #
142
+ # @param [Hash] query
143
+ #
144
+ # @return [Contentful::Array<Contentful::Entry>]
109
145
  def entries(query = {})
110
146
  Request.new(self, '/entries', query).get
111
147
  end
112
148
 
113
149
  # Gets a specific asset
114
- # Takes an id and an optional hash of query options
115
- # Returns a Contentful::Asset
150
+ #
151
+ # @param [String] id
152
+ # @param [Hash] query
153
+ #
154
+ # @return [Contentful::Asset]
116
155
  def asset(id, query = {})
117
156
  Request.new(self, '/assets', query, id).get
118
157
  end
119
158
 
120
159
  # Gets a collection of assets
121
- # Takes an optional hash of query options
122
- # Returns a Contentful::Array of Contentful::Asset
160
+ #
161
+ # @param [Hash] query
162
+ #
163
+ # @return [Contentful::Array<Contentful::Asset>]
123
164
  def assets(query = {})
124
165
  Request.new(self, '/assets', query).get
125
166
  end
126
167
 
127
168
  # Returns the base url for all of the client's requests
169
+ # @private
128
170
  def base_url
129
171
  "http#{configuration[:secure] ? 's' : ''}://#{configuration[:api_url]}/spaces/#{configuration[:space]}"
130
172
  end
131
173
 
132
174
  # Returns the headers used for the HTTP requests
175
+ # @private
133
176
  def request_headers
134
177
  headers = { 'User-Agent' => "RubyContentfulGem/#{Contentful::VERSION}" }
135
178
  headers['Authorization'] = "Bearer #{configuration[:access_token]}" if configuration[:authentication_mechanism] == :header
@@ -139,6 +182,7 @@ module Contentful
139
182
  end
140
183
 
141
184
  # Patches a query hash with the client configurations for queries
185
+ # @private
142
186
  def request_query(query)
143
187
  if configuration[:authentication_mechanism] == :query_string
144
188
  query['access_token'] = configuration[:access_token]
@@ -149,26 +193,28 @@ module Contentful
149
193
  # Get a Contentful::Request object
150
194
  # Set second parameter to false to deactivate Resource building and
151
195
  # return Response objects instead
196
+ #
197
+ # @private
152
198
  def get(request, build_resource = true)
153
199
  url = request.absolute? ? request.url : base_url + request.url
154
200
  logger.info(request: { url: url, query: request.query, header: request_headers }) if logger
155
201
  response = Response.new(
156
- self.class.get_http(
157
- url,
158
- request_query(request.query),
159
- request_headers,
160
- proxy_params
161
- ), request
202
+ self.class.get_http(
203
+ url,
204
+ request_query(request.query),
205
+ request_headers,
206
+ proxy_params
207
+ ), request
162
208
  )
163
209
 
164
210
  return response if !build_resource || configuration[:raw_mode]
165
211
  logger.debug(response: response) if logger
166
212
  result = configuration[:resource_builder].new(
167
- self,
168
- response,
169
- configuration[:resource_mapping],
170
- configuration[:entry_mapping],
171
- configuration[:default_locale]
213
+ self,
214
+ response,
215
+ configuration[:resource_mapping],
216
+ configuration[:entry_mapping],
217
+ configuration[:default_locale]
172
218
  ).run
173
219
 
174
220
  fail result if result.is_a?(Error) && configuration[:raise_errors]
@@ -177,6 +223,7 @@ module Contentful
177
223
 
178
224
  # Use this method together with the client's :dynamic_entries configuration.
179
225
  # See README for details.
226
+ # @private
180
227
  def update_dynamic_entry_cache!
181
228
  @dynamic_entry_cache = Hash[
182
229
  content_types(limit: 1000).map do |ct|
@@ -190,13 +237,18 @@ module Contentful
190
237
 
191
238
  # Use this method to manually register a dynamic entry
192
239
  # See examples/dynamic_entries.rb
240
+ # @private
193
241
  def register_dynamic_entry(key, klass)
194
242
  @dynamic_entry_cache[key.to_sym] = klass
195
243
  end
196
244
 
197
245
  # Create a new synchronisation object
198
- # Takes sync options or a sync_url
199
- # You will need to call #each_page or #first_page on it
246
+ #
247
+ # @param [Hash, String] options Options or Sync URL
248
+ #
249
+ # @note You will need to call #each_page or #first_page on it
250
+ #
251
+ # @return [Contentful::Sync]
200
252
  def sync(options = { initial: true })
201
253
  Sync.new(self, options)
202
254
  end
@@ -209,33 +261,23 @@ module Contentful
209
261
  end
210
262
 
211
263
  def validate_configuration!
212
- if configuration[:space].empty?
213
- fail ArgumentError, 'You will need to initialize a client with a :space'
214
- end
264
+ fail ArgumentError, 'You will need to initialize a client with a :space' if configuration[:space].empty?
215
265
 
216
- if configuration[:access_token].empty?
217
- fail ArgumentError, 'You will need to initialize a client with an :access_token'
218
- end
266
+ fail ArgumentError, 'You will need to initialize a client with an :access_token' if configuration[:access_token].empty?
219
267
 
220
- if configuration[:api_url].empty?
221
- fail ArgumentError, 'The client configuration needs to contain an :api_url'
222
- end
268
+ fail ArgumentError, 'The client configuration needs to contain an :api_url' if configuration[:api_url].empty?
223
269
 
224
- if configuration[:default_locale].empty?
225
- fail ArgumentError, 'The client configuration needs to contain a :default_locale'
226
- end
270
+ fail ArgumentError, 'The client configuration needs to contain a :default_locale' if configuration[:default_locale].empty?
227
271
 
228
- unless configuration[:api_version].to_i >= 0
229
- fail ArgumentError, 'The :api_version must be a positive number or nil'
230
- end
272
+ fail ArgumentError, 'The :api_version must be a positive number or nil' unless configuration[:api_version].to_i >= 0
231
273
 
232
- unless [:header, :query_string].include? configuration[:authentication_mechanism]
233
- fail ArgumentError, 'The authentication mechanism must be :header or :query_string'
234
- end
274
+ fail ArgumentError, 'The authentication mechanism must be :header or :query_string' unless [:header, :query_string].include?(
275
+ configuration[:authentication_mechanism]
276
+ )
235
277
 
236
- unless [:auto, :manual].include? configuration[:dynamic_entries]
237
- fail ArgumentError, 'The :dynamic_entries mode must be :auto or :manual'
238
- end
278
+ fail ArgumentError, 'The :dynamic_entries mode must be :auto or :manual' unless [:auto, :manual].include?(
279
+ configuration[:dynamic_entries]
280
+ )
239
281
  end
240
282
  end
241
283
  end