smart_initializer 0.3.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.
- checksums.yaml +4 -4
 - data/.rubocop.yml +8 -1
 - data/CHANGELOG.md +26 -0
 - data/Gemfile.lock +74 -64
 - data/LICENSE.txt +1 -1
 - data/README.md +30 -3
 - data/bin/console +3 -3
 - data/gemfiles/with_external_deps.gemfile.lock +71 -62
 - data/gemfiles/without_external_deps.gemfile.lock +75 -66
 - data/lib/smart_core/initializer.rb +0 -3
 - data/lib/smart_core/initializer/attribute.rb +33 -2
 - data/lib/smart_core/initializer/attribute/factory.rb +43 -3
 - data/lib/smart_core/initializer/attribute/parameters.rb +30 -1
 - data/lib/smart_core/initializer/constructor.rb +5 -5
 - data/lib/smart_core/initializer/constructor/definer.rb +48 -4
 - data/lib/smart_core/initializer/dsl.rb +17 -5
 - data/lib/smart_core/initializer/errors.rb +4 -0
 - data/lib/smart_core/initializer/functionality.rb +1 -0
 - data/lib/smart_core/initializer/plugins.rb +1 -1
 - data/lib/smart_core/initializer/plugins/abstract.rb +2 -2
 - data/lib/smart_core/initializer/plugins/thy_types/thy_types/abstract_factory.rb +13 -2
 - data/lib/smart_core/initializer/type_system/interop.rb +10 -1
 - data/lib/smart_core/initializer/type_system/interop/abstract_factory.rb +12 -2
 - data/lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb +13 -2
 - data/lib/smart_core/initializer/version.rb +2 -2
 - data/smart_initializer.gemspec +7 -6
 - metadata +32 -19
 - data/.travis.yml +0 -51
 
| 
         @@ -31,12 +31,24 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       31 
31 
     | 
    
         
             
              # @param privacy [String, Symbol]
         
     | 
| 
       32 
32 
     | 
    
         
             
              # @param finalize [String, Symbol, Proc]
         
     | 
| 
       33 
33 
     | 
    
         
             
              # @param cast [Boolean]
         
     | 
| 
      
 34 
     | 
    
         
            +
              # @param read_only [Boolean]
         
     | 
| 
      
 35 
     | 
    
         
            +
              # @param as [String, Symbol, NilClass]
         
     | 
| 
       34 
36 
     | 
    
         
             
              # @param dynamic_options [Hash<Symbol,Any>]
         
     | 
| 
       35 
37 
     | 
    
         
             
              # @return [void]
         
     | 
| 
       36 
38 
     | 
    
         
             
              #
         
     | 
| 
       37 
39 
     | 
    
         
             
              # @api private
         
     | 
| 
       38 
40 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       39 
     | 
    
         
            -
              def define_parameter( 
     | 
| 
      
 41 
     | 
    
         
            +
              def define_parameter(
         
     | 
| 
      
 42 
     | 
    
         
            +
                name,
         
     | 
| 
      
 43 
     | 
    
         
            +
                type,
         
     | 
| 
      
 44 
     | 
    
         
            +
                type_system,
         
     | 
| 
      
 45 
     | 
    
         
            +
                privacy,
         
     | 
| 
      
 46 
     | 
    
         
            +
                finalize,
         
     | 
| 
      
 47 
     | 
    
         
            +
                cast,
         
     | 
| 
      
 48 
     | 
    
         
            +
                read_only,
         
     | 
| 
      
 49 
     | 
    
         
            +
                as,
         
     | 
| 
      
 50 
     | 
    
         
            +
                dynamic_options
         
     | 
| 
      
 51 
     | 
    
         
            +
              )
         
     | 
| 
       40 
52 
     | 
    
         
             
                thread_safe do
         
     | 
| 
       41 
53 
     | 
    
         
             
                  attribute = build_attribute(
         
     | 
| 
       42 
54 
     | 
    
         
             
                    name,
         
     | 
| 
         @@ -45,6 +57,8 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       45 
57 
     | 
    
         
             
                    privacy,
         
     | 
| 
       46 
58 
     | 
    
         
             
                    finalize,
         
     | 
| 
       47 
59 
     | 
    
         
             
                    cast,
         
     | 
| 
      
 60 
     | 
    
         
            +
                    read_only,
         
     | 
| 
      
 61 
     | 
    
         
            +
                    as,
         
     | 
| 
       48 
62 
     | 
    
         
             
                    dynamic_options
         
     | 
| 
       49 
63 
     | 
    
         
             
                  )
         
     | 
| 
       50 
64 
     | 
    
         
             
                  prevent_option_overlap(attribute)
         
     | 
| 
         @@ -67,6 +81,8 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       67 
81 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_PRIVACY_MODE,
         
     | 
| 
       68 
82 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_FINALIZER,
         
     | 
| 
       69 
83 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_CAST_BEHAVIOUR,
         
     | 
| 
      
 84 
     | 
    
         
            +
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_READ_ONLY,
         
     | 
| 
      
 85 
     | 
    
         
            +
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_AS,
         
     | 
| 
       70 
86 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_DYNAMIC_OPTIONS.dup
         
     | 
| 
       71 
87 
     | 
    
         
             
                    ).tap do |attribute|
         
     | 
| 
       72 
88 
     | 
    
         
             
                      prevent_option_overlap(attribute)
         
     | 
| 
         @@ -83,12 +99,24 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       83 
99 
     | 
    
         
             
              # @param privacy [String, Symbol]
         
     | 
| 
       84 
100 
     | 
    
         
             
              # @param finalize [String, Symbol, Proc]
         
     | 
| 
       85 
101 
     | 
    
         
             
              # @param cast [Boolean]
         
     | 
| 
      
 102 
     | 
    
         
            +
              # @param read_only [Boolean]
         
     | 
| 
      
 103 
     | 
    
         
            +
              # @param as [String, Symbol, NilClass]
         
     | 
| 
       86 
104 
     | 
    
         
             
              # @param dynamic_options [Hash<Symbol,Any>]
         
     | 
| 
       87 
105 
     | 
    
         
             
              # @return [void]
         
     | 
| 
       88 
106 
     | 
    
         
             
              #
         
     | 
| 
       89 
107 
     | 
    
         
             
              # @api private
         
     | 
| 
       90 
108 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       91 
     | 
    
         
            -
              def define_option( 
     | 
| 
      
 109 
     | 
    
         
            +
              def define_option(
         
     | 
| 
      
 110 
     | 
    
         
            +
                name,
         
     | 
| 
      
 111 
     | 
    
         
            +
                type,
         
     | 
| 
      
 112 
     | 
    
         
            +
                type_system,
         
     | 
| 
      
 113 
     | 
    
         
            +
                privacy,
         
     | 
| 
      
 114 
     | 
    
         
            +
                finalize,
         
     | 
| 
      
 115 
     | 
    
         
            +
                cast,
         
     | 
| 
      
 116 
     | 
    
         
            +
                read_only,
         
     | 
| 
      
 117 
     | 
    
         
            +
                as,
         
     | 
| 
      
 118 
     | 
    
         
            +
                dynamic_options
         
     | 
| 
      
 119 
     | 
    
         
            +
              )
         
     | 
| 
       92 
120 
     | 
    
         
             
                thread_safe do
         
     | 
| 
       93 
121 
     | 
    
         
             
                  attribute = build_attribute(
         
     | 
| 
       94 
122 
     | 
    
         
             
                    name,
         
     | 
| 
         @@ -97,6 +125,8 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       97 
125 
     | 
    
         
             
                    privacy,
         
     | 
| 
       98 
126 
     | 
    
         
             
                    finalize,
         
     | 
| 
       99 
127 
     | 
    
         
             
                    cast,
         
     | 
| 
      
 128 
     | 
    
         
            +
                    read_only,
         
     | 
| 
      
 129 
     | 
    
         
            +
                    as,
         
     | 
| 
       100 
130 
     | 
    
         
             
                    dynamic_options
         
     | 
| 
       101 
131 
     | 
    
         
             
                  )
         
     | 
| 
       102 
132 
     | 
    
         
             
                  prevent_parameter_overlap(attribute)
         
     | 
| 
         @@ -119,6 +149,8 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       119 
149 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_PRIVACY_MODE,
         
     | 
| 
       120 
150 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_FINALIZER,
         
     | 
| 
       121 
151 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_CAST_BEHAVIOUR,
         
     | 
| 
      
 152 
     | 
    
         
            +
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_READ_ONLY,
         
     | 
| 
      
 153 
     | 
    
         
            +
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_AS,
         
     | 
| 
       122 
154 
     | 
    
         
             
                      SmartCore::Initializer::Attribute::Parameters::DEFAULT_DYNAMIC_OPTIONS.dup
         
     | 
| 
       123 
155 
     | 
    
         
             
                    ).tap do |attribute|
         
     | 
| 
       124 
156 
     | 
    
         
             
                      prevent_parameter_overlap(attribute)
         
     | 
| 
         @@ -143,14 +175,26 @@ class SmartCore::Initializer::Constructor::Definer 
     | 
|
| 
       143 
175 
     | 
    
         
             
              # @param privacy [String, Symbol]
         
     | 
| 
       144 
176 
     | 
    
         
             
              # @param finalize [String, Symbol, Proc]
         
     | 
| 
       145 
177 
     | 
    
         
             
              # @param cast [Boolean]
         
     | 
| 
      
 178 
     | 
    
         
            +
              # @param read_only [Boolean]
         
     | 
| 
      
 179 
     | 
    
         
            +
              # @param as [String, Symbol, NilClass]
         
     | 
| 
       146 
180 
     | 
    
         
             
              # @param dynamic_options [Hash<Symbol,Any>]
         
     | 
| 
       147 
181 
     | 
    
         
             
              # @return [SmartCore::Initializer::Attribute]
         
     | 
| 
       148 
182 
     | 
    
         
             
              #
         
     | 
| 
       149 
183 
     | 
    
         
             
              # @api private
         
     | 
| 
       150 
184 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       151 
     | 
    
         
            -
              def build_attribute( 
     | 
| 
      
 185 
     | 
    
         
            +
              def build_attribute(
         
     | 
| 
      
 186 
     | 
    
         
            +
                name,
         
     | 
| 
      
 187 
     | 
    
         
            +
                type,
         
     | 
| 
      
 188 
     | 
    
         
            +
                type_system,
         
     | 
| 
      
 189 
     | 
    
         
            +
                privacy,
         
     | 
| 
      
 190 
     | 
    
         
            +
                finalize,
         
     | 
| 
      
 191 
     | 
    
         
            +
                cast,
         
     | 
| 
      
 192 
     | 
    
         
            +
                read_only,
         
     | 
| 
      
 193 
     | 
    
         
            +
                as,
         
     | 
| 
      
 194 
     | 
    
         
            +
                dynamic_options
         
     | 
| 
      
 195 
     | 
    
         
            +
              )
         
     | 
| 
       152 
196 
     | 
    
         
             
                SmartCore::Initializer::Attribute::Factory.create(
         
     | 
| 
       153 
     | 
    
         
            -
                  name, type, type_system, privacy, finalize, cast, dynamic_options
         
     | 
| 
      
 197 
     | 
    
         
            +
                  name, type, type_system, privacy, finalize, cast, read_only, as, dynamic_options
         
     | 
| 
       154 
198 
     | 
    
         
             
                )
         
     | 
| 
       155 
199 
     | 
    
         
             
              end
         
     | 
| 
       156 
200 
     | 
    
         | 
| 
         @@ -33,17 +33,19 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       33 
33 
     | 
    
         
             
                #
         
     | 
| 
       34 
34 
     | 
    
         
             
                # @api private
         
     | 
| 
       35 
35 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
      
 36 
     | 
    
         
            +
                # @version 0.3.2
         
     | 
| 
       36 
37 
     | 
    
         
             
                def inherited(child_klass)
         
     | 
| 
       37 
     | 
    
         
            -
                  child_klass. 
     | 
| 
      
 38 
     | 
    
         
            +
                  child_klass.instance_exec(__initializer_settings__) do |init_settings|
         
     | 
| 
       38 
39 
     | 
    
         
             
                    instance_variable_set(:@__params__, SmartCore::Initializer::Attribute::List.new)
         
     | 
| 
       39 
40 
     | 
    
         
             
                    instance_variable_set(:@__options__, SmartCore::Initializer::Attribute::List.new)
         
     | 
| 
       40 
41 
     | 
    
         
             
                    instance_variable_set(:@__init_extensions__, SmartCore::Initializer::Extensions::List.new)
         
     | 
| 
       41 
42 
     | 
    
         
             
                    instance_variable_set(:@__definer__, SmartCore::Initializer::Constructor::Definer.new(self))
         
     | 
| 
       42 
43 
     | 
    
         
             
                    instance_variable_set(:@__deflock__, SmartCore::Engine::Lock.new)
         
     | 
| 
       43 
     | 
    
         
            -
                    instance_variable_set(:@__initializer_settings__,  
     | 
| 
      
 44 
     | 
    
         
            +
                    instance_variable_set(:@__initializer_settings__, init_settings.dup)
         
     | 
| 
       44 
45 
     | 
    
         
             
                  end
         
     | 
| 
       45 
46 
     | 
    
         
             
                  child_klass.extend(ClassMethods)
         
     | 
| 
       46 
47 
     | 
    
         
             
                  SmartCore::Initializer::DSL::Inheritance.inherit(base: self, child: child_klass)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  child_klass.singleton_class.prepend(ClassInheritance)
         
     | 
| 
       47 
49 
     | 
    
         
             
                  super
         
     | 
| 
       48 
50 
     | 
    
         
             
                end
         
     | 
| 
       49 
51 
     | 
    
         
             
              end
         
     | 
| 
         @@ -75,7 +77,7 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       75 
77 
     | 
    
         
             
                  @__init_extensions__
         
     | 
| 
       76 
78 
     | 
    
         
             
                end
         
     | 
| 
       77 
79 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
                # @return [SmartCore::Initializer:: 
     | 
| 
      
 80 
     | 
    
         
            +
                # @return [SmartCore::Initializer::Constructor::Definer]
         
     | 
| 
       79 
81 
     | 
    
         
             
                #
         
     | 
| 
       80 
82 
     | 
    
         
             
                # @api private
         
     | 
| 
       81 
83 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
         @@ -106,11 +108,14 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       106 
108 
     | 
    
         
             
                # @option cast [Boolean]
         
     | 
| 
       107 
109 
     | 
    
         
             
                # @option privacy [String, Symbol]
         
     | 
| 
       108 
110 
     | 
    
         
             
                # @option finalize [String, Symbol, Proc]
         
     | 
| 
      
 111 
     | 
    
         
            +
                # @option read_only [Boolean]
         
     | 
| 
      
 112 
     | 
    
         
            +
                # @option as [NilClass, String, Symbol]
         
     | 
| 
       109 
113 
     | 
    
         
             
                # @param dynamic_options [Hash<Symbol,Any>]
         
     | 
| 
       110 
114 
     | 
    
         
             
                # @return [void]
         
     | 
| 
       111 
115 
     | 
    
         
             
                #
         
     | 
| 
       112 
116 
     | 
    
         
             
                # @api public
         
     | 
| 
       113 
117 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
      
 118 
     | 
    
         
            +
                # @version 0.4.0
         
     | 
| 
       114 
119 
     | 
    
         
             
                def param(
         
     | 
| 
       115 
120 
     | 
    
         
             
                  name,
         
     | 
| 
       116 
121 
     | 
    
         
             
                  type = __initializer_settings__.generic_type_object,
         
     | 
| 
         @@ -118,10 +123,12 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       118 
123 
     | 
    
         
             
                  finalize: SmartCore::Initializer::Attribute::Parameters::DEFAULT_FINALIZER,
         
     | 
| 
       119 
124 
     | 
    
         
             
                  cast: SmartCore::Initializer::Attribute::Parameters::DEFAULT_CAST_BEHAVIOUR,
         
     | 
| 
       120 
125 
     | 
    
         
             
                  type_system: __initializer_settings__.type_system,
         
     | 
| 
      
 126 
     | 
    
         
            +
                  read_only: SmartCore::Initializer::Attribute::Parameters::DEFAULT_READ_ONLY,
         
     | 
| 
      
 127 
     | 
    
         
            +
                  as: SmartCore::Initializer::Attribute::Parameters::DEFAULT_AS,
         
     | 
| 
       121 
128 
     | 
    
         
             
                  **dynamic_options
         
     | 
| 
       122 
129 
     | 
    
         
             
                )
         
     | 
| 
       123 
130 
     | 
    
         
             
                  __definer__.define_parameter(
         
     | 
| 
       124 
     | 
    
         
            -
                    name, type, type_system, privacy, finalize, cast, dynamic_options
         
     | 
| 
      
 131 
     | 
    
         
            +
                    name, type, type_system, privacy, finalize, cast, read_only, as, dynamic_options
         
     | 
| 
       125 
132 
     | 
    
         
             
                  )
         
     | 
| 
       126 
133 
     | 
    
         
             
                end
         
     | 
| 
       127 
134 
     | 
    
         | 
| 
         @@ -140,11 +147,14 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       140 
147 
     | 
    
         
             
                # @option privacy [String, Symbol]
         
     | 
| 
       141 
148 
     | 
    
         
             
                # @option finalize [String, Symbol, Proc]
         
     | 
| 
       142 
149 
     | 
    
         
             
                # @option type_system [String, Symbol]
         
     | 
| 
      
 150 
     | 
    
         
            +
                # @option read_only [Boolean]
         
     | 
| 
      
 151 
     | 
    
         
            +
                # @option as [NilClass, String, Symbol]
         
     | 
| 
       143 
152 
     | 
    
         
             
                # @param dynamic_options [Hash<Symbol,Any>]
         
     | 
| 
       144 
153 
     | 
    
         
             
                # @return [void]
         
     | 
| 
       145 
154 
     | 
    
         
             
                #
         
     | 
| 
       146 
155 
     | 
    
         
             
                # @api public
         
     | 
| 
       147 
156 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
      
 157 
     | 
    
         
            +
                # @version 0.4.0
         
     | 
| 
       148 
158 
     | 
    
         
             
                def option(
         
     | 
| 
       149 
159 
     | 
    
         
             
                  name,
         
     | 
| 
       150 
160 
     | 
    
         
             
                  type = __initializer_settings__.generic_type_object,
         
     | 
| 
         @@ -152,10 +162,12 @@ module SmartCore::Initializer::DSL 
     | 
|
| 
       152 
162 
     | 
    
         
             
                  finalize: SmartCore::Initializer::Attribute::Parameters::DEFAULT_FINALIZER,
         
     | 
| 
       153 
163 
     | 
    
         
             
                  cast: SmartCore::Initializer::Attribute::Parameters::DEFAULT_CAST_BEHAVIOUR,
         
     | 
| 
       154 
164 
     | 
    
         
             
                  type_system: __initializer_settings__.type_system,
         
     | 
| 
      
 165 
     | 
    
         
            +
                  read_only: SmartCore::Initializer::Attribute::Parameters::DEFAULT_READ_ONLY,
         
     | 
| 
      
 166 
     | 
    
         
            +
                  as: SmartCore::Initializer::Attribute::Parameters::DEFAULT_AS,
         
     | 
| 
       155 
167 
     | 
    
         
             
                  **dynamic_options
         
     | 
| 
       156 
168 
     | 
    
         
             
                )
         
     | 
| 
       157 
169 
     | 
    
         
             
                  __definer__.define_option(
         
     | 
| 
       158 
     | 
    
         
            -
                    name, type, type_system, privacy, finalize, cast, dynamic_options
         
     | 
| 
      
 170 
     | 
    
         
            +
                    name, type, type_system, privacy, finalize, cast, read_only, as, dynamic_options
         
     | 
| 
       159 
171 
     | 
    
         
             
                  )
         
     | 
| 
       160 
172 
     | 
    
         
             
                end
         
     | 
| 
       161 
173 
     | 
    
         | 
| 
         @@ -73,6 +73,10 @@ module SmartCore::Initializer 
     | 
|
| 
       73 
73 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       74 
74 
     | 
    
         
             
              UnsupportedTypeOperationError = Class.new(TypeSystemError)
         
     | 
| 
       75 
75 
     | 
    
         | 
| 
      
 76 
     | 
    
         
            +
              # @api public
         
     | 
| 
      
 77 
     | 
    
         
            +
              # @since 0.5.1
         
     | 
| 
      
 78 
     | 
    
         
            +
              IncorrectTypeError = Class.new(TypeSystemError)
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
       76 
80 
     | 
    
         
             
              # @api public
         
     | 
| 
       77 
81 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       78 
82 
     | 
    
         
             
              TypeCastingUnsupportedError = Class.new(UnsupportedTypeOperationError)
         
     | 
| 
         @@ -5,7 +5,7 @@ 
     | 
|
| 
       5 
5 
     | 
    
         
             
            module SmartCore::Initializer::Plugins
         
     | 
| 
       6 
6 
     | 
    
         
             
              require_relative 'plugins/abstract'
         
     | 
| 
       7 
7 
     | 
    
         
             
              require_relative 'plugins/registry'
         
     | 
| 
       8 
     | 
    
         
            -
              require_relative 'plugins/registry_interface 
     | 
| 
      
 8 
     | 
    
         
            +
              require_relative 'plugins/registry_interface'
         
     | 
| 
       9 
9 
     | 
    
         
             
              require_relative 'plugins/access_mixin'
         
     | 
| 
       10 
10 
     | 
    
         
             
              require_relative 'plugins/thy_types'
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -28,6 +28,15 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    end
         
     | 
| 
       29 
29 
     | 
    
         
             
                  end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
                  # @param type [Any]
         
     | 
| 
      
 32 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 33 
     | 
    
         
            +
                  #
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @api private
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # @since 0.5.1
         
     | 
| 
      
 36 
     | 
    
         
            +
                  def build_identifier(type)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    type.name
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       31 
40 
     | 
    
         
             
                  # @param type [Thy::Type, #check]
         
     | 
| 
       32 
41 
     | 
    
         
             
                  # @return [SmartCore::Initializer::TypeSystem::ThyTypes::Operation::Valid]
         
     | 
| 
       33 
42 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -63,6 +72,7 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       63 
72 
     | 
    
         
             
                    ThyTypes::Operation::Cast.new(type)
         
     | 
| 
       64 
73 
     | 
    
         
             
                  end
         
     | 
| 
       65 
74 
     | 
    
         | 
| 
      
 75 
     | 
    
         
            +
                  # @param identifier [String]
         
     | 
| 
       66 
76 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::ThyTypes::Operation::Valid]
         
     | 
| 
       67 
77 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::ThyTypes::Operation::Validate]
         
     | 
| 
       68 
78 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::ThyTypes::Operation::Cast]
         
     | 
| 
         @@ -70,8 +80,9 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       70 
80 
     | 
    
         
             
                  #
         
     | 
| 
       71 
81 
     | 
    
         
             
                  # @api private
         
     | 
| 
       72 
82 
     | 
    
         
             
                  # @since 0.1.0
         
     | 
| 
       73 
     | 
    
         
            -
                   
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
      
 83 
     | 
    
         
            +
                  # @version 0.5.1
         
     | 
| 
      
 84 
     | 
    
         
            +
                  def build_interop(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
      
 85 
     | 
    
         
            +
                    ThyTypes.new(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
       75 
86 
     | 
    
         
             
                  end
         
     | 
| 
       76 
87 
     | 
    
         
             
                end
         
     | 
| 
       77 
88 
     | 
    
         
             
              end
         
     | 
| 
         @@ -41,6 +41,13 @@ class SmartCore::Initializer::TypeSystem::Interop 
     | 
|
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         
             
              end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
      
 44 
     | 
    
         
            +
              # @return [String]
         
     | 
| 
      
 45 
     | 
    
         
            +
              #
         
     | 
| 
      
 46 
     | 
    
         
            +
              # @api private
         
     | 
| 
      
 47 
     | 
    
         
            +
              # @since 0.5.1
         
     | 
| 
      
 48 
     | 
    
         
            +
              attr_reader :identifier
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              # @param identifier [String]
         
     | 
| 
       44 
51 
     | 
    
         
             
              # @param valid_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
       45 
52 
     | 
    
         
             
              # @param validate_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
       46 
53 
     | 
    
         
             
              # @param cast_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
         @@ -48,7 +55,9 @@ class SmartCore::Initializer::TypeSystem::Interop 
     | 
|
| 
       48 
55 
     | 
    
         
             
              #
         
     | 
| 
       49 
56 
     | 
    
         
             
              # @api private
         
     | 
| 
       50 
57 
     | 
    
         
             
              # @since 0.1.0
         
     | 
| 
       51 
     | 
    
         
            -
               
     | 
| 
      
 58 
     | 
    
         
            +
              # @version 0.5.1
         
     | 
| 
      
 59 
     | 
    
         
            +
              def initialize(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
      
 60 
     | 
    
         
            +
                @identifier = identifier
         
     | 
| 
       52 
61 
     | 
    
         
             
                @valid_op = valid_op
         
     | 
| 
       53 
62 
     | 
    
         
             
                @validate_op = validate_op
         
     | 
| 
       54 
63 
     | 
    
         
             
                @cast_op = cast_op
         
     | 
| 
         @@ -13,11 +13,12 @@ class SmartCore::Initializer::TypeSystem::Interop::AbstractFactory 
     | 
|
| 
       13 
13 
     | 
    
         
             
                def create(type)
         
     | 
| 
       14 
14 
     | 
    
         
             
                  prevent_incompatible_type!(type)
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
                  identifier = build_identifier(type)
         
     | 
| 
       16 
17 
     | 
    
         
             
                  valid_op = build_valid_operation(type)
         
     | 
| 
       17 
18 
     | 
    
         
             
                  validate_op = build_validate_operation(type)
         
     | 
| 
       18 
19 
     | 
    
         
             
                  cast_op = build_cast_operation(type)
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                  build_interop(valid_op, validate_op, cast_op)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  build_interop(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
       21 
22 
     | 
    
         
             
                end
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
                # @return [Any]
         
     | 
| 
         @@ -26,6 +27,13 @@ class SmartCore::Initializer::TypeSystem::Interop::AbstractFactory 
     | 
|
| 
       26 
27 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
       27 
28 
     | 
    
         
             
                def generic_type_object; end
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
                # @param type [Any]
         
     | 
| 
      
 31 
     | 
    
         
            +
                # @return [String]
         
     | 
| 
      
 32 
     | 
    
         
            +
                #
         
     | 
| 
      
 33 
     | 
    
         
            +
                # @api private
         
     | 
| 
      
 34 
     | 
    
         
            +
                # @since 0.5.1
         
     | 
| 
      
 35 
     | 
    
         
            +
                def build_identifier(type); end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
       29 
37 
     | 
    
         
             
                # @param type [Any]
         
     | 
| 
       30 
38 
     | 
    
         
             
                # @return [void]
         
     | 
| 
       31 
39 
     | 
    
         
             
                #
         
     | 
| 
         @@ -58,6 +66,7 @@ class SmartCore::Initializer::TypeSystem::Interop::AbstractFactory 
     | 
|
| 
       58 
66 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
       59 
67 
     | 
    
         
             
                def build_cast_operation(type); end
         
     | 
| 
       60 
68 
     | 
    
         | 
| 
      
 69 
     | 
    
         
            +
                # @param identifier [String]
         
     | 
| 
       61 
70 
     | 
    
         
             
                # @param valid_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
       62 
71 
     | 
    
         
             
                # @param validate_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
       63 
72 
     | 
    
         
             
                # @param cast_op [SmartCore::Initializer::TypeSystem::Interop::Operation]
         
     | 
| 
         @@ -65,6 +74,7 @@ class SmartCore::Initializer::TypeSystem::Interop::AbstractFactory 
     | 
|
| 
       65 
74 
     | 
    
         
             
                #
         
     | 
| 
       66 
75 
     | 
    
         
             
                # @api private
         
     | 
| 
       67 
76 
     | 
    
         
             
                # @since 0.1.0
         
     | 
| 
       68 
     | 
    
         
            -
                 
     | 
| 
      
 77 
     | 
    
         
            +
                # @version 0.5.1
         
     | 
| 
      
 78 
     | 
    
         
            +
                def build_interop(identifier, valid_op, validate_op, cast_op); end
         
     | 
| 
       69 
79 
     | 
    
         
             
              end
         
     | 
| 
       70 
80 
     | 
    
         
             
            end
         
     | 
| 
         @@ -22,6 +22,15 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       22 
22 
     | 
    
         
             
                    end
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
                  # @param type [Any]
         
     | 
| 
      
 26 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 27 
     | 
    
         
            +
                  #
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # @api private
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @since 0.5.1
         
     | 
| 
      
 30 
     | 
    
         
            +
                  def build_identifier(type)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    type.name
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       25 
34 
     | 
    
         
             
                  # @param type [SmartCore::Types::Primitive]
         
     | 
| 
       26 
35 
     | 
    
         
             
                  # @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid]
         
     | 
| 
       27 
36 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -57,6 +66,7 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       57 
66 
     | 
    
         
             
                    SmartTypes::Operation::Cast.new(type)
         
     | 
| 
       58 
67 
     | 
    
         
             
                  end
         
     | 
| 
       59 
68 
     | 
    
         | 
| 
      
 69 
     | 
    
         
            +
                  # @param identifier [String]
         
     | 
| 
       60 
70 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid]
         
     | 
| 
       61 
71 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Validate]
         
     | 
| 
       62 
72 
     | 
    
         
             
                  # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Cast]
         
     | 
| 
         @@ -64,8 +74,9 @@ module SmartCore::Initializer::TypeSystem 
     | 
|
| 
       64 
74 
     | 
    
         
             
                  #
         
     | 
| 
       65 
75 
     | 
    
         
             
                  # @api private
         
     | 
| 
       66 
76 
     | 
    
         
             
                  # @since 0.1.0
         
     | 
| 
       67 
     | 
    
         
            -
                   
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
      
 77 
     | 
    
         
            +
                  # @version 0.5.1
         
     | 
| 
      
 78 
     | 
    
         
            +
                  def build_interop(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
      
 79 
     | 
    
         
            +
                    SmartTypes.new(identifier, valid_op, validate_op, cast_op)
         
     | 
| 
       69 
80 
     | 
    
         
             
                  end
         
     | 
| 
       70 
81 
     | 
    
         
             
                end
         
     | 
| 
       71 
82 
     | 
    
         
             
              end
         
     | 
    
        data/smart_initializer.gemspec
    CHANGED
    
    | 
         @@ -30,13 +30,14 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       30 
30 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
       31 
31 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
              spec.add_dependency 'smart_engine', '~> 0. 
     | 
| 
       34 
     | 
    
         
            -
              spec.add_dependency 'smart_types',  '~> 0. 
     | 
| 
      
 33 
     | 
    
         
            +
              spec.add_dependency 'smart_engine', '~> 0.11'
         
     | 
| 
      
 34 
     | 
    
         
            +
              spec.add_dependency 'smart_types',  '~> 0.4'
         
     | 
| 
       35 
35 
     | 
    
         
             
              spec.add_dependency 'qonfig',       '~> 0.24'
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
              spec.add_development_dependency 'bundler',          '~> 2. 
     | 
| 
      
 37 
     | 
    
         
            +
              spec.add_development_dependency 'bundler',          '~> 2.2'
         
     | 
| 
       38 
38 
     | 
    
         
             
              spec.add_development_dependency 'rake',             '~> 13.0'
         
     | 
| 
       39 
     | 
    
         
            -
              spec.add_development_dependency 'rspec',            '~> 3. 
     | 
| 
       40 
     | 
    
         
            -
              spec.add_development_dependency 'armitage-rubocop', '~>  
     | 
| 
       41 
     | 
    
         
            -
              spec.add_development_dependency 'simplecov',        '~> 0. 
     | 
| 
      
 39 
     | 
    
         
            +
              spec.add_development_dependency 'rspec',            '~> 3.10'
         
     | 
| 
      
 40 
     | 
    
         
            +
              spec.add_development_dependency 'armitage-rubocop', '~> 1.7'
         
     | 
| 
      
 41 
     | 
    
         
            +
              spec.add_development_dependency 'simplecov',        '~> 0.21'
         
     | 
| 
      
 42 
     | 
    
         
            +
              spec.add_development_dependency 'pry',              '~> 0.14'
         
     | 
| 
       42 
43 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: smart_initializer
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.6.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Rustam Ibragimov
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire: 
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-06-23 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: smart_engine
         
     | 
| 
         @@ -16,28 +16,28 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.11'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       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: '0. 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0.11'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: smart_types
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
31 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       32 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0.4'
         
     | 
| 
       34 
34 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       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: 0. 
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0.4'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
42 
     | 
    
         
             
              name: qonfig
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -58,14 +58,14 @@ dependencies: 
     | 
|
| 
       58 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
59 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       60 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
       62 
62 
     | 
    
         
             
              type: :development
         
     | 
| 
       63 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       64 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
66 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              name: rake
         
     | 
| 
       71 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -86,42 +86,56 @@ dependencies: 
     | 
|
| 
       86 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       87 
87 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       88 
88 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       89 
     | 
    
         
            -
                    version: '3. 
     | 
| 
      
 89 
     | 
    
         
            +
                    version: '3.10'
         
     | 
| 
       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. 
     | 
| 
      
 96 
     | 
    
         
            +
                    version: '3.10'
         
     | 
| 
       97 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
98 
     | 
    
         
             
              name: armitage-rubocop
         
     | 
| 
       99 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       101 
101 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       102 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 103 
     | 
    
         
            +
                    version: '1.7'
         
     | 
| 
       104 
104 
     | 
    
         
             
              type: :development
         
     | 
| 
       105 
105 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       106 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       108 
108 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       109 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 110 
     | 
    
         
            +
                    version: '1.7'
         
     | 
| 
       111 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
112 
     | 
    
         
             
              name: simplecov
         
     | 
| 
       113 
113 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
114 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
115 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       116 
116 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 117 
     | 
    
         
            +
                    version: '0.21'
         
     | 
| 
       118 
118 
     | 
    
         
             
              type: :development
         
     | 
| 
       119 
119 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       120 
120 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
121 
     | 
    
         
             
                requirements:
         
     | 
| 
       122 
122 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       123 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 124 
     | 
    
         
            +
                    version: '0.21'
         
     | 
| 
      
 125 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 126 
     | 
    
         
            +
              name: pry
         
     | 
| 
      
 127 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 128 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 129 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 130 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 131 
     | 
    
         
            +
                    version: '0.14'
         
     | 
| 
      
 132 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 133 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 134 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 135 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 136 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 137 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 138 
     | 
    
         
            +
                    version: '0.14'
         
     | 
| 
       125 
139 
     | 
    
         
             
            description: A simple and convenient way to declare complex constructors
         
     | 
| 
       126 
140 
     | 
    
         
             
            email:
         
     | 
| 
       127 
141 
     | 
    
         
             
            - iamdaiver@gmail.com
         
     | 
| 
         @@ -132,7 +146,6 @@ files: 
     | 
|
| 
       132 
146 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       133 
147 
     | 
    
         
             
            - ".rspec"
         
     | 
| 
       134 
148 
     | 
    
         
             
            - ".rubocop.yml"
         
     | 
| 
       135 
     | 
    
         
            -
            - ".travis.yml"
         
     | 
| 
       136 
149 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       137 
150 
     | 
    
         
             
            - CODE_OF_CONDUCT.md
         
     | 
| 
       138 
151 
     | 
    
         
             
            - Gemfile
         
     | 
| 
         @@ -209,7 +222,7 @@ metadata: 
     | 
|
| 
       209 
222 
     | 
    
         
             
              homepage_uri: https://github.com/smart-rb/smart_initializer
         
     | 
| 
       210 
223 
     | 
    
         
             
              source_code_uri: https://github.com/smart-rb/smart_initializer
         
     | 
| 
       211 
224 
     | 
    
         
             
              changelog_uri: https://github.com/smart-rb/smart_initializer/blob/master/CHANGELOG.md
         
     | 
| 
       212 
     | 
    
         
            -
            post_install_message: 
     | 
| 
      
 225 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
       213 
226 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       214 
227 
     | 
    
         
             
            require_paths:
         
     | 
| 
       215 
228 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -224,8 +237,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       224 
237 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       225 
238 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       226 
239 
     | 
    
         
             
            requirements: []
         
     | 
| 
       227 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       228 
     | 
    
         
            -
            signing_key: 
     | 
| 
      
 240 
     | 
    
         
            +
            rubygems_version: 3.2.3
         
     | 
| 
      
 241 
     | 
    
         
            +
            signing_key:
         
     | 
| 
       229 
242 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       230 
243 
     | 
    
         
             
            summary: Initializer DSL
         
     | 
| 
       231 
244 
     | 
    
         
             
            test_files: []
         
     |