sinclair 1.4.1 → 1.4.2

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +5 -3
  3. data/.rubocop.yml +20 -4
  4. data/Dockerfile +8 -4
  5. data/README.md +1 -1
  6. data/config/yardstick.yml +10 -35
  7. data/lib/sinclair.rb +87 -18
  8. data/lib/sinclair/config.rb +3 -0
  9. data/lib/sinclair/config/methods_builder.rb +15 -1
  10. data/lib/sinclair/config_builder.rb +1 -0
  11. data/lib/sinclair/config_class.rb +1 -0
  12. data/lib/sinclair/config_factory.rb +15 -0
  13. data/lib/sinclair/configurable.rb +1 -0
  14. data/lib/sinclair/matchers.rb +20 -6
  15. data/lib/sinclair/matchers/add_class_method.rb +56 -0
  16. data/lib/sinclair/matchers/add_class_method_to.rb +98 -0
  17. data/lib/sinclair/matchers/add_instance_method.rb +85 -0
  18. data/lib/sinclair/matchers/add_instance_method_to.rb +119 -0
  19. data/lib/sinclair/matchers/add_method.rb +11 -73
  20. data/lib/sinclair/matchers/add_method_to.rb +13 -111
  21. data/lib/sinclair/method_definition.rb +18 -58
  22. data/lib/sinclair/method_definition/block_definition.rb +37 -6
  23. data/lib/sinclair/method_definition/class_block_definition.rb +22 -0
  24. data/lib/sinclair/method_definition/class_method_definition.rb +50 -0
  25. data/lib/sinclair/method_definition/class_string_definition.rb +24 -0
  26. data/lib/sinclair/method_definition/instance_block_definition.rb +22 -0
  27. data/lib/sinclair/method_definition/instance_method_definition.rb +48 -0
  28. data/lib/sinclair/method_definition/instance_string_definition.rb +24 -0
  29. data/lib/sinclair/method_definition/string_definition.rb +39 -5
  30. data/lib/sinclair/method_definitions.rb +28 -0
  31. data/lib/sinclair/options_parser.rb +5 -0
  32. data/lib/sinclair/version.rb +1 -1
  33. data/sinclair.gemspec +16 -10
  34. data/spec/integration/yard/sinclair/matchers/add_class_method_spec.rb +23 -0
  35. data/spec/integration/yard/sinclair/matchers/add_class_method_to_spec.rb +19 -0
  36. data/spec/integration/yard/sinclair/matchers/{add_method_spec.rb → add_instance_method_spec.rb} +3 -3
  37. data/spec/integration/yard/sinclair/matchers/{add_method_to_spec.rb → add_instance_method_to_spec.rb} +1 -1
  38. data/spec/integration/yard/sinclair/method_definition/class_block_definition_spec.rb +34 -0
  39. data/spec/integration/yard/sinclair/method_definition/class_method_definition_spec.rb +28 -0
  40. data/spec/integration/yard/sinclair/method_definition/class_string_definition_spec.rb +23 -0
  41. data/spec/integration/yard/sinclair/method_definition/{block_definition_spec.rb → instance_block_definition_spec.rb} +2 -2
  42. data/spec/integration/yard/sinclair/method_definition/instance_method_definition_spec.rb +35 -0
  43. data/spec/integration/yard/sinclair/method_definition/{string_definition_spec.rb → instance_string_definition_spec.rb} +1 -1
  44. data/spec/integration/yard/sinclair_spec.rb +32 -5
  45. data/spec/lib/sinclair/matchers/add_class_method_spec.rb +36 -0
  46. data/spec/lib/sinclair/matchers/add_class_method_to_spec.rb +77 -0
  47. data/spec/lib/sinclair/matchers/{add_method_spec.rb → add_instance_method_spec.rb} +11 -4
  48. data/spec/lib/sinclair/matchers/{add_method_to_spec.rb → add_instance_method_to_spec.rb} +2 -2
  49. data/spec/lib/sinclair/matchers_spec.rb +17 -2
  50. data/spec/lib/sinclair/method_definition/class_block_definition_spec.rb +29 -0
  51. data/spec/lib/sinclair/method_definition/class_string_definition_spec.rb +27 -0
  52. data/spec/lib/sinclair/method_definition/{block_definition_spec.rb → instance_block_definition_spec.rb} +2 -2
  53. data/spec/lib/sinclair/method_definition/{string_definition_spec.rb → instance_string_definition_spec.rb} +2 -2
  54. data/spec/lib/sinclair/method_definition_spec.rb +52 -6
  55. data/spec/lib/sinclair_spec.rb +83 -0
  56. data/spec/support/models/dummy_class_builder.rb +11 -0
  57. data/spec/support/shared_examples/class_method_definition.rb +96 -0
  58. data/spec/support/shared_examples/{method_definition.rb → instance_method_definition.rb} +0 -0
  59. metadata +148 -45
  60. data/scripts/check_readme.sh +0 -6
  61. data/scripts/rubycritic.sh +0 -10
  62. data/spec/integration/sinclair/matchers_spec.rb +0 -99
  63. data/spec/integration/yard/sinclair/method_definition_spec.rb +0 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf2a52c6d33753fa9a52ad79fc4657d9d8573526a471ffb8c4fad386b1063e63
4
- data.tar.gz: e219d16240478c36417001ac957437c4bcd2b29b241d51dde3802a0f9114dd32
3
+ metadata.gz: c859413d4a0550d19e5578915d18a1a9e2c1fd3759af5445de6599eb604e56ab
4
+ data.tar.gz: 495fe0c0dc55e043647887fb1637a3149647deef58293ef18d1df30b4fd05196
5
5
  SHA512:
6
- metadata.gz: 1d8348d94ceebf9dc9a303f7f9e394ee3e8d42351a5c9b78a503c0882fb65a6afa6054a124cae96d7cc77380c7c239e10774a6dc0b7bb4091ff2de5fb4cc9df6
7
- data.tar.gz: 8c6177428b8184b3b949bfa493a17b23b4a401b5767ebd131ffbdf125c03f061e20be249f079194557dcaf429c91f58517ab76b1cea9f7e2635bea55df76276b
6
+ metadata.gz: 61712ff93d7157675c92971f88b07ac8e6a19004ee2fa077d7f60ebaf9dd98118f1af2ff7730d983c0c705a7cd5e120f996b9baabf44bbcff0ccba93a9321f6a
7
+ data.tar.gz: 0d3ec3b940c71b9a02599184e9d2b9f8afc23cea563794bc903940fbf6f0bb84bbf203b87f57c02d6bab7907cc845c6aefd93649be92d99e157e4249427629e6
@@ -2,7 +2,9 @@ version: 2
2
2
  jobs:
3
3
  build:
4
4
  docker:
5
- - image: darthjee/circleci_ruby_gems:0.1.0
5
+ - image: darthjee/circleci_ruby_gems:0.2.1
6
+ environment:
7
+ PROJECT: sinclair
6
8
  steps:
7
9
  - checkout
8
10
  - run:
@@ -25,7 +27,7 @@ jobs:
25
27
  command: bundle exec rake verify_measurements
26
28
  - run:
27
29
  name: Check version documentation
28
- command: scripts/check_readme.sh
30
+ command: check_readme.sh
29
31
  - run:
30
32
  name: Rubycritcs check
31
- command: scripts/rubycritic.sh
33
+ command: rubycritic.sh
@@ -8,6 +8,7 @@ Metrics/BlockLength:
8
8
  Exclude:
9
9
  - 'spec/**/*_spec.rb'
10
10
  - 'spec/support/**/*.rb'
11
+ - '*.gemspec'
11
12
 
12
13
  Metrics/LineLength:
13
14
  Max: 100
@@ -22,17 +23,32 @@ RSpec/AlignLeftLetBrace:
22
23
  RSpec/InstanceVariable:
23
24
  Exclude:
24
25
  - spec/integration/yard/sinclair/method_definition_spec.rb
25
- - spec/integration/yard/sinclair/method_definition/block_definition_spec.rb
26
- - spec/lib/sinclair/method_definition/block_definition_spec.rb
26
+ - spec/integration/yard/sinclair/method_definition/instance_block_definition_spec.rb
27
+ - spec/integration/yard/sinclair/method_definition/instance_method_definition_spec.rb
28
+ - spec/integration/yard/sinclair/method_definition/class_block_definition_spec.rb
29
+ - spec/integration/yard/sinclair/method_definition/class_method_definition_spec.rb
30
+ - spec/lib/sinclair/method_definition/instance_block_definition_spec.rb
31
+ - spec/lib/sinclair/method_definition/instance_method_definition_spec.rb
32
+ - spec/lib/sinclair/method_definition/class_block_definition_spec.rb
33
+ - spec/lib/sinclair/method_definition/class_method_definition_spec.rb
27
34
  - spec/lib/sinclair/method_definition_spec.rb
35
+ - spec/lib/sinclair/method_definition/block_definition_spec.rb
36
+ - spec/integration/yard/sinclair/method_definition/block_definition_spec.rb
37
+
28
38
 
29
39
  RSpec/MultipleExpectations:
30
40
  Exclude:
31
41
  - spec/integration/yard/sinclair/method_definition_spec.rb
32
- - spec/integration/yard/sinclair/method_definition/block_definition_spec.rb
33
- - spec/integration/yard/sinclair/method_definition/string_definition_spec.rb
42
+ - spec/integration/yard/sinclair/method_definition/instance_block_definition_spec.rb
43
+ - spec/integration/yard/sinclair/method_definition/instance_string_definition_spec.rb
44
+ - spec/integration/yard/sinclair/method_definition/instance_method_definition_spec.rb
45
+ - spec/integration/yard/sinclair/method_definition/class_block_definition_spec.rb
46
+ - spec/integration/yard/sinclair/method_definition/class_string_definition_spec.rb
47
+ - spec/integration/yard/sinclair/method_definition/class_method_definition_spec.rb
34
48
  - spec/lib/sinclair_spec.rb
35
49
  - spec/integration/readme/my_model_spec.rb
50
+ - spec/integration/yard/sinclair/method_definition/block_definition_spec.rb
51
+ - spec/integration/yard/sinclair/method_definition/string_definition_spec.rb
36
52
 
37
53
  RSpec/NestedGroups:
38
54
  Max: 4
data/Dockerfile CHANGED
@@ -1,19 +1,20 @@
1
- FROM darthjee/ruby_gems:0.1.0 as base
2
- FROM darthjee/scripts:0.0.2 as scripts
1
+ FROM darthjee/ruby_gems:0.2.1 as base
2
+ FROM darthjee/scripts:0.1.0 as scripts
3
3
 
4
4
  ######################################
5
5
 
6
6
  FROM base as builder
7
7
 
8
8
  COPY --chown=app ./ /home/app/app/
9
- COPY --chown=app:app --from=scripts /home/scripts/ ./
9
+ COPY --chown=app:app --from=scripts /home/scripts/builder/bundle_builder.sh /usr/local/sbin/
10
10
 
11
11
  ENV HOME_DIR /home/app
12
- RUN /bin/bash bundle_builder.sh
12
+ RUN bundle_builder.sh
13
13
 
14
14
  #######################
15
15
  #FINAL IMAGE
16
16
  FROM base
17
+ RUN mkdir lib/sinclair -p
17
18
 
18
19
  USER root
19
20
 
@@ -23,4 +24,7 @@ COPY --chown=app:app --from=builder /home/app/bundle/specifications /usr/local/b
23
24
  COPY --chown=app:app --from=builder /home/app/bundle/bin /usr/local/bundle/bin
24
25
  COPY --chown=app:app --from=builder /home/app/bundle/extensions /usr/local/bundle/extensions
25
26
 
27
+ COPY --chown=app ./*.gemspec ./Gemfile* /home/app/app/
28
+ COPY --chown=app ./lib/sinclair/version.rb /home/app/app/lib/sinclair/
26
29
  USER app
30
+ RUN bundle install
data/README.md CHANGED
@@ -14,7 +14,7 @@ methods
14
14
 
15
15
  Yard Documentation
16
16
  -------------------
17
- https://www.rubydoc.info/gems/sinclair/1.4.1
17
+ https://www.rubydoc.info/gems/sinclair/1.4.2
18
18
 
19
19
  Installation
20
20
  ---------------
@@ -16,53 +16,28 @@ rules:
16
16
  ExampleTag:
17
17
  enabled: true
18
18
  exclude:
19
- - Sinclair::OptionsParser#options
20
- - Sinclair::OptionsParser#options_object
21
19
  - Sinclair::Configurable#config
22
20
  - Sinclair::Configurable#reset_config
23
21
  - Sinclair::Configurable#configure
22
+ - Sinclair::OptionsParser#options
23
+ - Sinclair::OptionsParser#options_object
24
24
  ReturnTag:
25
25
  enabled: true
26
26
  exclude:
27
- - Sinclair#klass
28
- - Sinclair::Matchers::AddMethod#method
29
- - Sinclair::Matchers::AddMethodTo#method
30
- - Sinclair::Matchers::AddMethodTo#instance
31
- - Sinclair::MethodDefinition#name
32
- - Sinclair::MethodDefinition#code
33
- - Sinclair::MethodDefinition#block
34
- - Sinclair::OptionsParser#options
35
- - Sinclair::OptionsParser#options_object
36
- - Sinclair::Matchers::AddMethodTo#raise_block_syntax_error
37
- - Sinclair::ConfigFactory#initialize
38
- - Sinclair::ConfigFactory#config_class
39
- - Sinclair::ConfigFactory#config_attributes
40
- - Sinclair::Config::MethodsBuilder#names
41
- - Sinclair::Config::MethodsBuilder#defaults
42
- - Sinclair::Configurable#config
43
- - Sinclair::Configurable#reset_config
44
- - Sinclair::Configurable#configure
27
+ - Sinclair::Matchers::AddClassMethodTo#raise_block_syntax_error
28
+ - Sinclair::Matchers::AddInstanceMethodTo#raise_block_syntax_error
45
29
  Summary::Presence:
46
30
  enabled: true
47
31
  exclude:
48
- - Sinclair#klass
49
- - Sinclair::Matchers::AddMethod#method
50
- - Sinclair::Matchers::AddMethodTo#method
51
- - Sinclair::Matchers::AddMethodTo#instance
32
+ - Sinclair::Config::MethodsBuilder#initialize
33
+ - Sinclair::ConfigFactory#initialize
34
+ - Sinclair::Matchers::AddClassMethodTo#initialize
35
+ - Sinclair::Matchers::AddInstanceMethodTo#instance
36
+ - Sinclair::Matchers::AddMethod#initialize
37
+ - Sinclair::Matchers::AddMethodTo#initialize
52
38
  - Sinclair::MethodDefinition#initialize
53
- - Sinclair::MethodDefinition#name
54
- - Sinclair::MethodDefinition#code
55
- - Sinclair::MethodDefinition#block
56
39
  - Sinclair::MethodDefinition::BlockDefinition#initialize
57
40
  - Sinclair::MethodDefinition::StringDefinition#initialize
58
- - Sinclair::OptionsParser#options
59
- - Sinclair::OptionsParser#options_object
60
- - Sinclair::ConfigFactory#initialize
61
- - Sinclair::ConfigFactory#config_class
62
- - Sinclair::ConfigFactory#config_attributes
63
- - Sinclair::Config::MethodsBuilder#initialize
64
- - Sinclair::Config::MethodsBuilder#names
65
- - Sinclair::Config::MethodsBuilder#defaults
66
41
  Summary::Length:
67
42
  enabled: true
68
43
  exclude: []
@@ -82,19 +82,20 @@ require 'active_support/all'
82
82
  class Sinclair
83
83
  require 'sinclair/options_parser'
84
84
 
85
- autoload :VERSION, 'sinclair/version'
86
- autoload :MethodDefinition, 'sinclair/method_definition'
87
- autoload :Config, 'sinclair/config'
88
- autoload :ConfigBuilder, 'sinclair/config_builder'
89
- autoload :ConfigClass, 'sinclair/config_class'
90
- autoload :ConfigFactory, 'sinclair/config_factory'
91
- autoload :Configurable, 'sinclair/configurable'
85
+ autoload :VERSION, 'sinclair/version'
86
+ autoload :Config, 'sinclair/config'
87
+ autoload :ConfigBuilder, 'sinclair/config_builder'
88
+ autoload :ConfigClass, 'sinclair/config_class'
89
+ autoload :ConfigFactory, 'sinclair/config_factory'
90
+ autoload :Configurable, 'sinclair/configurable'
91
+ autoload :MethodDefinition, 'sinclair/method_definition'
92
+ autoload :MethodDefinitions, 'sinclair/method_definitions'
92
93
 
93
94
  include OptionsParser
94
95
 
95
96
  # Returns a new instance of Sinclair
96
97
  #
97
- # @param klass [Class] to receive the methods
98
+ # @param klass [Class] Class that will receive the methods
98
99
  # @param options [Hash] open hash options to be used by builders inheriting from Sinclair
99
100
  # through the Sinclair::OptionsParser concern
100
101
  #
@@ -171,12 +172,19 @@ class Sinclair
171
172
  end
172
173
  end
173
174
 
174
- # add a method to the method list to be created on klass
175
+ # Add a method to the method list to be created on klass instances
175
176
  #
176
- # @overload add_method(name, code)
177
- # @param name [String,Symbol] name of the method to be added
177
+ # @param name [String,Symbol] name of the method to be added
178
+ # @param options [Hash] Options of construction
179
+ # @option options cached [Boolean] Flag telling to create
180
+ # a method with cache
181
+ #
182
+ # @overload add_method(name, code, **options)
178
183
  # @param code [String] code to be evaluated when the method is ran
179
184
  #
185
+ # @overload add_method(name, **options, &block)
186
+ # @param block [Proc] block to be ran as method
187
+ #
180
188
  # @example Using string code
181
189
  # class Person
182
190
  # attr_reader :first_name, :last_name
@@ -193,19 +201,75 @@ class Sinclair
193
201
  #
194
202
  # Person.new('john', 'wick').full_name # returns 'john wick'
195
203
  #
196
- # @overload add_method(name, &block)
197
- # @param name [String,Symbol] name of the method to be added
198
- # @param block [Proc] block to be ran as method
199
- #
200
204
  # @example Using block
205
+ # class Person
206
+ # attr_reader :first_name, :last_name
207
+ #
208
+ # def initialize(first_name, last_name)
209
+ # @first_name = first_name
210
+ # @last_name = last_name
211
+ # end
212
+ # end
213
+ #
201
214
  # builder = Sinclair.new(Person)
215
+ # builder.add_method(:full_name, '[first_name, last_name].join(" ")')
202
216
  # builder.add_method(:bond_name) { "#{last_name}, #{full_name}" }
203
217
  # builder.build
204
218
  #
205
219
  # Person.new('john', 'wick').bond_name # returns 'wick, john wick'
206
220
  # @return [Array<MethodDefinition>]
207
221
  def add_method(name, code = nil, **options, &block)
208
- definitions << MethodDefinition.from(name, code, **options, &block)
222
+ definitions.add(
223
+ MethodDefinition::InstanceMethodDefinition,
224
+ name, code, **options, &block
225
+ )
226
+ end
227
+
228
+ # Add a method to the method list to be created on klass
229
+ #
230
+ # @param name [String,Symbol] name of the method to be added
231
+ # @param options [Hash] Options of construction
232
+ # @option options cached [Boolean] Flag telling to create
233
+ # a method with cache
234
+ #
235
+ # @overload add_class_method(name, code, **options)
236
+ # @param code [String] code to be evaluated when the method is ran
237
+ #
238
+ # @overload add_class_method(name, **options, &block)
239
+ # @param block [Proc] block to be ran as method
240
+ #
241
+ # @example
242
+ # class EnvFetcher
243
+ # end
244
+ #
245
+ # builder = Sinclair.new(EnvFetcher)
246
+ #
247
+ # builder.add_class_method(:hostname, 'ENV["HOSTNAME"]')
248
+ # builder.build
249
+ #
250
+ # ENV['HOSTNAME'] = 'myhost'
251
+ #
252
+ # env_fetcher.hostname # returns 'myhost'
253
+ #
254
+ # @example
255
+ # class EnvFetcher
256
+ # end
257
+ #
258
+ # builder = Sinclair.new(EnvFetcher)
259
+ #
260
+ # builder.add_class_method(:timeout) { ENV['TIMEOUT'] }
261
+ # builder.build
262
+ #
263
+ # ENV['TIMEOUT'] = '300'
264
+ #
265
+ # env_fetcher.timeout # returns '300'
266
+ #
267
+ # @return [Array<MethodDefinition>]
268
+ def add_class_method(name, code = nil, **options, &block)
269
+ definitions.add(
270
+ MethodDefinition::ClassMethodDefinition,
271
+ name, code, **options, &block
272
+ )
209
273
  end
210
274
 
211
275
  # Evaluetes a block which will result in a String, the method code
@@ -284,8 +348,13 @@ class Sinclair
284
348
 
285
349
  private
286
350
 
351
+ # @method klass
287
352
  # @api private
288
353
  # @private
354
+ #
355
+ # Class that will receive the methods
356
+ #
357
+ # @return [Class]
289
358
  attr_reader :klass
290
359
 
291
360
  # @private
@@ -294,8 +363,8 @@ class Sinclair
294
363
  #
295
364
  # List of mthod definitions
296
365
  #
297
- # @return [Array<MethodDefinition>]
366
+ # @return [MethodDefinitions]
298
367
  def definitions
299
- @definitions ||= []
368
+ @definitions ||= MethodDefinitions.new
300
369
  end
301
370
  end
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Sinclair
4
+ # @api public
5
+ # @author darthjee
6
+ #
4
7
  # Base class for configuration when using {Configurable}
5
8
  #
6
9
  # The methods will be added later by {ConfigFactory}
@@ -3,6 +3,7 @@
3
3
  class Sinclair
4
4
  class Config
5
5
  # @api private
6
+ # @author darthjee
6
7
  #
7
8
  # Class responsible for adding method to configuration
8
9
  # classes
@@ -27,7 +28,7 @@ class Sinclair
27
28
  # @overload initialize(klass, *names, default)
28
29
  # @param names [Array<Symbol,String>] List of configuration names
29
30
  # to be added
30
- # @param default [Hash] Configurations that will receive a default
31
+ # @param default [Hash] Configurations that will receive a default value
31
32
  # value when not configured
32
33
  def initialize(klass, *names)
33
34
  super(klass)
@@ -69,6 +70,19 @@ class Sinclair
69
70
 
70
71
  private
71
72
 
73
+ # @method names
74
+ # @private
75
+ #
76
+ # List of configuration names
77
+ #
78
+ # @return [Array<Symbol,String>]
79
+
80
+ # @method defaults
81
+ # @private
82
+ #
83
+ # Configurations that will receive a default value
84
+ #
85
+ # @return [Hash]
72
86
  attr_reader :names, :defaults
73
87
 
74
88
  # @private
@@ -2,6 +2,7 @@
2
2
 
3
3
  class Sinclair
4
4
  # @api private
5
+ # @author darthjee
5
6
  #
6
7
  # Class responsible for setting the values on configuration
7
8
  #
@@ -2,6 +2,7 @@
2
2
 
3
3
  class Sinclair
4
4
  # @api public
5
+ # @author darthjee
5
6
  #
6
7
  # Module with all class methods for {Config}
7
8
  #
@@ -2,6 +2,7 @@
2
2
 
3
3
  class Sinclair
4
4
  # @api private
5
+ # @author darthjee
5
6
  #
6
7
  # Class responsible for configuring the configuration class
7
8
  #
@@ -22,6 +23,7 @@ class Sinclair
22
23
  CONFIG_CLASS_WARNING = 'Config class is expected to be ConfigClass. ' \
23
24
  "In future releases this will be enforced.\n" \
24
25
  'see more on https://github.com/darthjee/sinclair/blob/master/WARNINGS.md#usage-of-custom-config-classes'
26
+
25
27
  # @param config_class [Class] configuration class to be used
26
28
  # @param config_attributes [Array<Symbol,String>] list of possible configurations
27
29
  def initialize(config_class: Class.new(Config), config_attributes: [])
@@ -29,6 +31,7 @@ class Sinclair
29
31
  @config_attributes = config_attributes.dup
30
32
 
31
33
  return if config_class.is_a?(ConfigClass)
34
+
32
35
  warn CONFIG_CLASS_WARNING
33
36
  end
34
37
 
@@ -141,7 +144,19 @@ class Sinclair
141
144
 
142
145
  private
143
146
 
147
+ # method config_class
148
+ # @private
149
+ #
150
+ # Configuration class to be used
151
+ #
152
+ # @return [Class]
153
+
154
+ # @method config_attributes
144
155
  # @private
156
+ #
157
+ # List of possible configurations
158
+ #
159
+ # @return [Array<Symbol,String>]
145
160
  attr_reader :config_class, :config_attributes
146
161
 
147
162
  # @private