sinclair 1.14.0 → 1.14.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ee09cd280144bc873d89c0272856bf716e0a20c2ca5d3f7fe8bf11ac972c859
4
- data.tar.gz: c5107aa15ffab29f4dd14b45efd0387913c60064ad62a58c4ec85adb09d91c9c
3
+ metadata.gz: b6bd1d9896437c341e52648bac78c70d453a773c92a2fba06111d88d12be06a3
4
+ data.tar.gz: 5cb2ba761532e3db60ffc8a09b821509c1355949071c5346cef962b0d43dfe9d
5
5
  SHA512:
6
- metadata.gz: 38994db2d8a69ef1b9f3827a84bcb53a0bd18e2073a4840b004a89ac00a0fe0f5d9a8a69ce231b9d6c5f2cfc51b3a96c5ee898c848ce7ba802eac1d8556a058b
7
- data.tar.gz: 4812c5a5793de217eb0cdd895c8cc94ac698af119c60fded29ea6929bddf0240b9dbcdba237dba7c1f060a3c3b8a3a173d2c7fef0509f6181d738ca0c7f0ef34
6
+ metadata.gz: bf2fd682ae8e6c57a8a173a5f78492bf6c7011dfef7734fd9c0c2d3d4d73fa599bac72a9317920dd0ebf5bb6c98f0f2f511c0fcc9fe5b683f766b5624359ccf3
7
+ data.tar.gz: db83a68fd9b11d0a227afca422f5a6e8e33bc64e3624a55c0d8f3b87d49235d8e17b1393c44b6ac2a67c8b9869e58d5780a3a06aad4f76429a4c4b0c48247f43
@@ -0,0 +1,28 @@
1
+ FROM darthjee/scripts:0.3.1 as scripts
2
+
3
+ FROM darthjee/circleci_ruby_270:1.2.0 as base
4
+
5
+ COPY --chown=app:app ./ /home/circleci/project/
6
+
7
+ ######################################
8
+
9
+ FROM base as builder
10
+
11
+ COPY --chown=circleci:circleci --from=scripts /home/scripts/builder/bundle_builder.sh /usr/local/sbin/bundle_builder.sh
12
+
13
+ ENV PROJECT sinclair
14
+ ENV HOME_DIR /home/circleci
15
+ RUN bundle_builder.sh
16
+
17
+ #######################
18
+ #FINAL IMAGE
19
+ FROM base
20
+
21
+ COPY --chown=circleci:circleci --from=builder /home/circleci/bundle/ /home/circleci/.rubygems/
22
+
23
+ COPY --chown=circleci:circleci --from=scripts /home/scripts/sbin/rubycritic.sh /usr/local/sbin/
24
+ COPY --chown=circleci:circleci --from=scripts /home/scripts/sbin/check_specs /usr/local/sbin/
25
+ COPY --chown=circleci:circleci --from=scripts /home/scripts/sbin/check_readme.sh /usr/local/sbin/
26
+ COPY --chown=circleci:circleci --from=scripts /home/scripts/sbin/build_gem.sh /usr/local/sbin/
27
+
28
+ RUN bundle install
data/README.md CHANGED
@@ -9,17 +9,19 @@ Sinclair
9
9
 
10
10
  ![sinclair](https://raw.githubusercontent.com/darthjee/sinclair/master/sinclair.jpg)
11
11
 
12
- This gem helps the creation of complex gems/concerns
13
- that enables creation of methods on the fly through class
14
- methods
12
+ Sinclair is a Ruby gem that provides developers with a variety of utility modules and classes
13
+ to simplify common tasks, reusability and avoid boilerplate code. Whether you need to class methods to create methods on the fly,
14
+ create custom comparators, configure your application, create powerfull options, Sinclair has got you covered.
15
15
 
16
- Current Release: [1.14.0](https://github.com/darthjee/sinclair/tree/1.14.0)
16
+ Employing Sinclair in your applications helps you streamline your development workflow and enhance your development process through more efficient, cleaner code
17
17
 
18
- [Next release](https://github.com/darthjee/sinclair/compare/1.14.0...master)
18
+ Current Release: [1.14.2](https://github.com/darthjee/sinclair/tree/1.14.2)
19
+
20
+ [Next release](https://github.com/darthjee/sinclair/compare/1.14.2...master)
19
21
 
20
22
  Yard Documentation
21
23
  -------------------
22
- [https://www.rubydoc.info/gems/sinclair/1.14.0](https://www.rubydoc.info/gems/sinclair/1.14.0)
24
+ [https://www.rubydoc.info/gems/sinclair/1.14.2](https://www.rubydoc.info/gems/sinclair/1.14.2)
23
25
 
24
26
  Installation
25
27
  ---------------
@@ -77,20 +79,20 @@ puts "One Hundred => #{Clazz.one_hundred_twenty}" # One Hundred Twenty => 120
77
79
  <summary>Builder in class method</summary>
78
80
 
79
81
  ```ruby
82
+ # http_json_model.rb
83
+
80
84
  class HttpJsonModel
81
85
  attr_reader :json
82
86
 
83
87
  class << self
84
88
  def parse(attribute, path: [])
85
- builder = Sinclair.new(self)
86
-
87
89
  keys = (path + [attribute]).map(&:to_s)
88
90
 
89
- builder.add_method(attribute) do
90
- keys.inject(hash) { |h, key| h[key] }
91
+ Sinclair.build(self) do
92
+ add_method(attribute) do
93
+ keys.inject(hash) { |h, key| h[key] }
94
+ end
91
95
  end
92
-
93
- builder.build
94
96
  end
95
97
  end
96
98
 
@@ -102,6 +104,10 @@ class HttpJsonModel
102
104
  @hash ||= JSON.parse(json)
103
105
  end
104
106
  end
107
+ ```
108
+
109
+ ```ruby
110
+ # http_person.rb
105
111
 
106
112
  class HttpPerson < HttpJsonModel
107
113
  parse :uid
@@ -110,7 +116,9 @@ class HttpPerson < HttpJsonModel
110
116
  parse :username, path: [:digital_information]
111
117
  parse :email, path: [:digital_information]
112
118
  end
119
+ ```
113
120
 
121
+ ```ruby
114
122
  json = <<-JSON
115
123
  {
116
124
  "uid": "12sof511",
@@ -524,8 +532,16 @@ Client.config.url # returns 'http://interstella.com:8080'
524
532
 
525
533
  ### Sinclair::EnvSettable
526
534
 
527
- Settable allows classes to extract configuration from environments through
528
- a simple meta-programable way
535
+ EnvSettable is a convenient utility that allows you to read environment
536
+ variables using Ruby class methods.
537
+
538
+ With this tool, you can define the usage of environment variables for your application in a single location
539
+ allowing the use of prefixes to isolate groups of variables.
540
+
541
+ This not only makes your code more readable and maintainable but also adds layer of security by ensuring
542
+ that sensitive information like API keys and passwords are not exposed in your source code.
543
+
544
+ EnvSettable allows accessing those variables thorugh a simple meta-programable way
529
545
 
530
546
  <details>
531
547
  <summary>Using env settable example</summary>
@@ -645,7 +661,8 @@ human1 == human2 # returns true
645
661
  <summary>Example with options</summary>
646
662
 
647
663
  ```ruby
648
- class Tv < Sinclair::Model.for(:model, writter: false, comparable: false)
664
+ class Tv < Sinclair::Model
665
+ initialize_with :model, writter: false, comparable: false
649
666
  end
650
667
 
651
668
  tv1 = Tv.new(model: 'Sans Sunga Xt')
@@ -664,6 +681,15 @@ You can use the provided matcher to check that your builder is adding a method c
664
681
  <summary>Sample of specs over adding methods</summary>
665
682
 
666
683
  ```ruby
684
+ # spec_helper.rb
685
+
686
+ RSpec.configure do |config|
687
+ config.include Sinclair::Matchers
688
+ end
689
+ ```
690
+
691
+ ```ruby
692
+ # default_value.rb
667
693
  class DefaultValue
668
694
  delegate :build, to: :builder
669
695
  attr_reader :klass, :method, :value, :class_method
@@ -687,8 +713,12 @@ class DefaultValue
687
713
  end
688
714
  end
689
715
  end
716
+ ```
717
+
718
+ ```ruby
719
+ # default_value_spec.rb
690
720
 
691
- RSpec.describe Sinclair::Matchers do
721
+ RSpec.describe DefaultValue do
692
722
  subject(:builder_class) { DefaultValue }
693
723
 
694
724
  let(:klass) { Class.new }
@@ -7,4 +7,5 @@ ignore:
7
7
  - lib/sinclair/matchers/base.rb
8
8
  - lib/sinclair/matchers/change_method_on.rb
9
9
  - lib/sinclair/matchers/method_to.rb
10
+ - lib/sinclair/model/builder_options.rb
10
11
  - lib/sinclair/version.rb
data/config/yardstick.yml CHANGED
@@ -1,4 +1,4 @@
1
- threshold: 100
1
+ threshold: 99.8
2
2
  require_exact_threshold: false
3
3
  rules:
4
4
  ApiTag::Presence:
data/docker-compose.yml CHANGED
@@ -21,3 +21,14 @@ services:
21
21
  <<: *base
22
22
  depends_on: [base_build]
23
23
  command: /bin/bash -c 'rspec && yard && rake yardstick_measure && rake verify_measurements'
24
+
25
+ sinclair_circleci:
26
+ <<: *base
27
+ image: sinclair_circleci
28
+ container_name: sinclair_circleci
29
+ volumes:
30
+ - .:/home/circleci/project
31
+ working_dir: /home/circleci/project
32
+ command: /bin/bash
33
+ build:
34
+ dockerfile: Dockerfile.circleci
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Sinclair
4
+ # @author darthjee
5
+ # @api public
6
+ #
7
+ # Class methods for {Sinclair}
8
+ module ClassMethods
9
+ # Runs build using a block for adding the methods
10
+ #
11
+ # The block is executed adding the methods and after the builder
12
+ # runs build building all the methods
13
+ #
14
+ # @param (see Sinclair#initialize)
15
+ # @param block [Proc] block to be executed by the builder
16
+ # in order to add the methods before running build
17
+ #
18
+ # @yield an instance of a builder ({Sinclair})
19
+ #
20
+ # @return (see Sinclair#build)
21
+ #
22
+ # @example Simple usage
23
+ # class MyPerson
24
+ # end
25
+ #
26
+ # Sinclair.build(model_class) do
27
+ # add_method(:random_name, cached: true) do
28
+ # "John #{Random.rand(1000)} Doe"
29
+ # end
30
+ # end
31
+ #
32
+ # model = MyPerson.new
33
+ #
34
+ # model.random_name # returns 'John 803 Doe'
35
+ def build(klass, options = {}, &block)
36
+ new(klass, options).tap do |builder|
37
+ builder.instance_eval(&block)
38
+ end.build
39
+ end
40
+ end
41
+ end
@@ -26,7 +26,7 @@ class Sinclair
26
26
  # @param parameters_list [Array<Object>] list of parameters and defaults
27
27
  # @param named [TrueClass,FalseClass] Flag informing if the parameters are
28
28
  # named parameters
29
- def initialize(parameters_list, named: false)
29
+ def initialize(parameters_list, named: nil)
30
30
  @parameters_list = parameters_list
31
31
  @named = named
32
32
  end
@@ -40,7 +40,7 @@ class Sinclair
40
40
  def strings
41
41
  return [] unless parameters_list
42
42
 
43
- parameters_strings + defaults_strings
43
+ parameters_strings + defaults_strings + wild_card_parameters
44
44
  end
45
45
 
46
46
  private
@@ -81,7 +81,18 @@ class Sinclair
81
81
  # @return [Array<Symbol>]
82
82
  def parameters
83
83
  parameters_list.reject do |param|
84
- param.is_a?(Hash)
84
+ param.is_a?(Hash) || param.to_s.match?(/^\*/)
85
+ end
86
+ end
87
+
88
+ # Returns the named parameters that have not been defined
89
+ #
90
+ # THis is usually extra options
91
+ #
92
+ # @return [Array<String>]
93
+ def wild_card_parameters
94
+ parameters_list.reject do |param|
95
+ param.is_a?(Hash) || !param.to_s.match?(/^\*/)
85
96
  end
86
97
  end
87
98
 
@@ -26,11 +26,10 @@ class Sinclair
26
26
  # method should be added
27
27
  # @param comparable [TrueClass,FalseClass] flag to make the class {Comparable}
28
28
  # by the fields
29
- def initialize(klass, *attributes, writter: true, comparable: true)
29
+ def initialize(klass, *attributes, **options)
30
30
  super(klass)
31
31
  @attributes = attributes.flatten
32
- @writter = writter
33
- @comparable = comparable
32
+ @options = BuilderOptions.new(**options)
34
33
 
35
34
  add_methods
36
35
  change_equals
@@ -39,7 +38,9 @@ class Sinclair
39
38
 
40
39
  private
41
40
 
42
- attr_reader :attributes, :writter, :comparable
41
+ attr_reader :attributes, :options
42
+
43
+ delegate :writter, :comparable, to: :options
43
44
  alias writter? writter
44
45
  alias comparable? comparable
45
46
 
@@ -54,6 +55,14 @@ class Sinclair
54
55
  #
55
56
  # @return [Array<Symbol,Hash>]
56
57
 
58
+ # @!method options
59
+ # @api private
60
+ # @private
61
+ #
62
+ # Class building options
63
+ #
64
+ # @return [BuilderOptions]
65
+
57
66
  # @!method writter
58
67
  # @api private
59
68
  # @private
@@ -118,11 +127,15 @@ class Sinclair
118
127
  #
119
128
  # @return [Array<MethodDefinition>]
120
129
  def change_initializer
121
- code = attributes_names.map do |attr|
130
+ lines = attributes_names.map do |attr|
122
131
  "@#{attr} = #{attr}"
123
- end.join("\n")
132
+ end
133
+
134
+ lines << 'super(**attributes)'
135
+
136
+ code = lines.join("\n")
124
137
 
125
- add_method(:initialize, code, named_parameters: attributes)
138
+ add_method(:initialize, code, named_parameters: attributes + ['**attributes'])
126
139
  end
127
140
 
128
141
  # @private
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Sinclair
4
+ class Model
5
+ # @api private
6
+ # @author Darthjee
7
+ #
8
+ # Options for building model class
9
+ class BuilderOptions < Sinclair::Options
10
+ with_options writter: true, comparable: true
11
+ end
12
+ end
13
+ end
@@ -6,7 +6,8 @@ class Sinclair
6
6
  #
7
7
  # Basic model to be used when defining new classes quickly
8
8
  class Model
9
- autoload :Builder, 'sinclair/model/builder'
9
+ autoload :Builder, 'sinclair/model/builder'
10
+ autoload :BuilderOptions, 'sinclair/model/builder_options'
10
11
 
11
12
  class << self
12
13
  # Returns a new class that inherits from model
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Sinclair
4
- VERSION = '1.14.0'
4
+ VERSION = '1.14.2'
5
5
  end
data/lib/sinclair.rb CHANGED
@@ -83,6 +83,7 @@ class Sinclair
83
83
  require 'sinclair/options_parser'
84
84
 
85
85
  autoload :VERSION, 'sinclair/version'
86
+ autoload :ClassMethods, 'sinclair/class_methods'
86
87
  autoload :Config, 'sinclair/config'
87
88
  autoload :ConfigBuilder, 'sinclair/config_builder'
88
89
  autoload :ConfigClass, 'sinclair/config_class'
@@ -100,6 +101,21 @@ class Sinclair
100
101
  autoload :Options, 'sinclair/options'
101
102
 
102
103
  include OptionsParser
104
+ extend ClassMethods
105
+
106
+ # @method self.build(klass, options = {}, &block)
107
+ # Runs build using a block for adding the methods
108
+ #
109
+ # The block is executed adding the methods and after the builder
110
+ # runs build building all the methods
111
+ #
112
+ # @see Sinclair::ClassMethods#build
113
+ #
114
+ # @param (see Sinclair::ClassMethods#build)
115
+ # @return (see Sinclair::ClassMethods#build)
116
+ # @yield (see Sinclair::ClassMethods#build)
117
+ #
118
+ # @example (see Sinclair::ClassMethods#build)
103
119
 
104
120
  # Returns a new instance of Sinclair
105
121
  #
data/sinclair.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.add_runtime_dependency 'activesupport', '~> 5.2.0'
23
23
 
24
- gem.add_development_dependency 'bundler', '2.3.25'
24
+ gem.add_development_dependency 'bundler', '>= 2.3.25'
25
25
  gem.add_development_dependency 'pry', '0.14.1'
26
26
  gem.add_development_dependency 'pry-nav', '1.0.0'
27
27
  gem.add_development_dependency 'rake', '13.0.1'
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: false
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Sinclair::ClassMethods do
6
+ describe 'yard for .build' do
7
+ before { allow(Random).to receive(:rand).and_return(803) }
8
+
9
+ it 'Simple usage' do
10
+ model_class = Class.new
11
+
12
+ Sinclair.build(model_class) do
13
+ add_method(:random_name, cached: true) do
14
+ "John #{Random.rand(1000)} Doe"
15
+ end
16
+ end
17
+
18
+ model = model_class.new
19
+
20
+ expect(model.random_name).to eq('John 803 Doe')
21
+ end
22
+ end
23
+ end
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Sinclair do
6
- describe 'yarn' do
6
+ describe 'yard' do
7
7
  let(:klass) { Class.new(MyModel) }
8
8
  let(:instance) { klass.new }
9
9
  let(:builder) { described_class.new(klass) }
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Sinclair::ClassMethods do
6
+ subject(:builder) { builder_class.new(dummy_class, options) }
7
+
8
+ let(:options) { {} }
9
+ let(:instance) { dummy_class.new }
10
+ let(:dummy_class) { Class.new }
11
+ let(:builder_class) { Sinclair }
12
+
13
+ describe '#build' do
14
+ let(:block) do
15
+ method_name = :some_method
16
+ value = 1
17
+
18
+ proc do
19
+ add_method(method_name) { value }
20
+ end
21
+ end
22
+
23
+ it 'executes the block and builds' do
24
+ expect { builder_class.build(dummy_class, options, &block) }
25
+ .to add_method(:some_method).to(dummy_class)
26
+ end
27
+
28
+ context 'when the method is built and called' do
29
+ before do
30
+ builder_class.build(dummy_class, options, &block)
31
+ end
32
+
33
+ it 'returns the value' do
34
+ expect(instance.some_method).to eq(1)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -22,6 +22,17 @@ describe Sinclair::MethodDefinition::ParameterHelper do
22
22
  .to eq(['a = 10', 'b = "word"', 'c = true', 'd = false', 'e = nil', 'f = :symbol'])
23
23
  end
24
24
  end
25
+
26
+ context 'when the parameter is an undefined parameter' do
27
+ let(:parameters) do
28
+ [:a, :b, '*args', { c: 10, d: 'word' }]
29
+ end
30
+
31
+ it 'returns a list of parameters' do
32
+ expect(described_class.parameters_from(parameters))
33
+ .to eq(['a', 'b', 'c = 10', 'd = "word"', '*args'])
34
+ end
35
+ end
25
36
  end
26
37
 
27
38
  context 'when parameters are named' do
@@ -42,6 +53,17 @@ describe Sinclair::MethodDefinition::ParameterHelper do
42
53
  .to eq(['a: 10', 'b: "word"', 'c: true', 'd: false', 'e: nil', 'f: :symbol'])
43
54
  end
44
55
  end
56
+
57
+ context 'when the parameter is an undefined parameter' do
58
+ let(:parameters) do
59
+ [:a, :b, '**opts', { c: 10, d: 'word' }]
60
+ end
61
+
62
+ it 'returns a list of parameters' do
63
+ expect(described_class.parameters_from(parameters, named: true))
64
+ .to eq(['a:', 'b:', 'c: 10', 'd: "word"', '**opts'])
65
+ end
66
+ end
45
67
  end
46
68
  end
47
69
  end
@@ -54,6 +54,37 @@ describe Sinclair::Model do
54
54
  end
55
55
  end
56
56
 
57
+ context 'when class is subclass of another model' do
58
+ subject(:model) { klass.new(name: name, age: age) }
59
+
60
+ let(:age) { Random.rand(10..20) }
61
+
62
+ let(:superclass) do
63
+ Class.new(described_class) do
64
+ initialize_with(:age)
65
+ end
66
+ end
67
+
68
+ let(:klass) do
69
+ Class.new(superclass) do
70
+ initialize_with(:name)
71
+ end
72
+ end
73
+
74
+ it 'is initialized with both attributes' do
75
+ expect { klass.new(name: name, age: age) }
76
+ .not_to raise_error
77
+ end
78
+
79
+ it 'is initializes new attributes' do
80
+ expect(model.name).to eq(name)
81
+ end
82
+
83
+ it 'is initializes old attributes' do
84
+ expect(model.age).to eq(age)
85
+ end
86
+ end
87
+
57
88
  context 'when the build is done' do
58
89
  before do
59
90
  klass.initialize_with(*attributes, **options)
@@ -5,15 +5,13 @@ class HttpJsonModel
5
5
 
6
6
  class << self
7
7
  def parse(attribute, path: [])
8
- builder = Sinclair.new(self)
9
-
10
8
  keys = (path + [attribute]).map(&:to_s)
11
9
 
12
- builder.add_method(attribute) do
13
- keys.inject(hash) { |h, key| h[key] }
10
+ Sinclair.build(self) do
11
+ add_method(attribute) do
12
+ keys.inject(hash) { |h, key| h[key] }
13
+ end
14
14
  end
15
-
16
- builder.build
17
15
  end
18
16
  end
19
17
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Tv < Sinclair::Model.for(:model, writter: false, comparable: false)
3
+ class Tv < Sinclair::Model
4
+ initialize_with :model, writter: false, comparable: false
4
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinclair
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.14.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarthJee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-16 00:00:00.000000000 Z
11
+ date: 2023-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.3.25
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
40
  version: 2.3.25
41
41
  - !ruby/object:Gem::Dependency
@@ -261,6 +261,7 @@ files:
261
261
  - ".rubocop.yml"
262
262
  - ".rubocop_todo.yml"
263
263
  - Dockerfile
264
+ - Dockerfile.circleci
264
265
  - Gemfile
265
266
  - LICENSE
266
267
  - README.md
@@ -272,6 +273,7 @@ files:
272
273
  - config/yardstick.yml
273
274
  - docker-compose.yml
274
275
  - lib/sinclair.rb
276
+ - lib/sinclair/class_methods.rb
275
277
  - lib/sinclair/comparable.rb
276
278
  - lib/sinclair/comparable/class_methods.rb
277
279
  - lib/sinclair/config.rb
@@ -316,6 +318,7 @@ files:
316
318
  - lib/sinclair/method_definitions.rb
317
319
  - lib/sinclair/model.rb
318
320
  - lib/sinclair/model/builder.rb
321
+ - lib/sinclair/model/builder_options.rb
319
322
  - lib/sinclair/options.rb
320
323
  - lib/sinclair/options/builder.rb
321
324
  - lib/sinclair/options/class_methods.rb
@@ -336,6 +339,7 @@ files:
336
339
  - spec/integration/yard/my_builder_spec.rb
337
340
  - spec/integration/yard/sinclair/add_class_method_spec.rb
338
341
  - spec/integration/yard/sinclair/add_method_spec.rb
342
+ - spec/integration/yard/sinclair/class_methods/build_spec.rb
339
343
  - spec/integration/yard/sinclair/comparable_spec.rb
340
344
  - spec/integration/yard/sinclair/config_builder_spec.rb
341
345
  - spec/integration/yard/sinclair/config_class_spec.rb
@@ -357,6 +361,7 @@ files:
357
361
  - spec/integration/yard/sinclair/options_parser_spec.rb
358
362
  - spec/integration/yard/sinclair/options_spec.rb
359
363
  - spec/integration/yard/sinclair_spec.rb
364
+ - spec/lib/sinclair/class_methods_spec.rb
360
365
  - spec/lib/sinclair/comparable_spec.rb
361
366
  - spec/lib/sinclair/config/methods_builder_spec.rb
362
367
  - spec/lib/sinclair/config_builder_spec.rb
@@ -468,7 +473,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
468
473
  - !ruby/object:Gem::Version
469
474
  version: '0'
470
475
  requirements: []
471
- rubygems_version: 3.3.25
476
+ rubygems_version: 3.1.2
472
477
  signing_key:
473
478
  specification_version: 4
474
479
  summary: Gem for easy concern creation