smart_initializer 0.1.0.alpha2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.travis.yml +36 -5
  4. data/CHANGELOG.md +15 -0
  5. data/Gemfile.lock +63 -43
  6. data/README.md +263 -11
  7. data/Rakefile +1 -1
  8. data/bin/rspec +54 -0
  9. data/gemfiles/with_external_deps.gemfile +7 -0
  10. data/gemfiles/with_external_deps.gemfile.lock +102 -0
  11. data/gemfiles/without_external_deps.gemfile +5 -0
  12. data/gemfiles/without_external_deps.gemfile.lock +100 -0
  13. data/lib/smart_core/initializer.rb +44 -28
  14. data/lib/smart_core/initializer/attribute.rb +12 -5
  15. data/lib/smart_core/initializer/attribute/factory.rb +47 -27
  16. data/lib/smart_core/initializer/attribute/parameters.rb +12 -4
  17. data/lib/smart_core/initializer/configuration.rb +33 -0
  18. data/lib/smart_core/initializer/constructor.rb +60 -23
  19. data/lib/smart_core/initializer/{attribute → constructor}/definer.rb +64 -12
  20. data/lib/smart_core/initializer/dsl.rb +47 -10
  21. data/lib/smart_core/initializer/dsl/inheritance.rb +1 -0
  22. data/lib/smart_core/initializer/errors.rb +44 -0
  23. data/lib/smart_core/initializer/extensions.rb +9 -0
  24. data/lib/smart_core/initializer/extensions/abstract.rb +8 -0
  25. data/lib/smart_core/initializer/extensions/ext_init.rb +31 -0
  26. data/lib/smart_core/initializer/extensions/list.rb +74 -0
  27. data/lib/smart_core/initializer/functionality.rb +36 -0
  28. data/lib/smart_core/initializer/instance_attribute_accessing.rb +51 -0
  29. data/lib/smart_core/initializer/plugins.rb +17 -0
  30. data/lib/smart_core/initializer/plugins/abstract.rb +55 -0
  31. data/lib/smart_core/initializer/plugins/access_mixin.rb +47 -0
  32. data/lib/smart_core/initializer/plugins/registry.rb +166 -0
  33. data/lib/smart_core/initializer/plugins/registry_interface.rb +77 -0
  34. data/lib/smart_core/initializer/plugins/thy_types.rb +30 -0
  35. data/lib/smart_core/initializer/plugins/thy_types/errors.rb +11 -0
  36. data/lib/smart_core/initializer/plugins/thy_types/thy_types.rb +23 -0
  37. data/lib/smart_core/initializer/plugins/thy_types/thy_types/abstract_factory.rb +78 -0
  38. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation.rb +12 -0
  39. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/base.rb +9 -0
  40. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/cast.rb +21 -0
  41. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/valid.rb +16 -0
  42. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/validate.rb +19 -0
  43. data/lib/smart_core/initializer/settings.rb +49 -0
  44. data/lib/smart_core/initializer/settings/duplicator.rb +20 -0
  45. data/lib/smart_core/initializer/settings/type_system.rb +69 -0
  46. data/lib/smart_core/initializer/type_system.rb +16 -0
  47. data/lib/smart_core/initializer/type_system/interop.rb +103 -0
  48. data/lib/smart_core/initializer/type_system/interop/abstract_factory.rb +70 -0
  49. data/lib/smart_core/initializer/type_system/interop/aliasing.rb +72 -0
  50. data/lib/smart_core/initializer/type_system/interop/aliasing/alias_list.rb +141 -0
  51. data/lib/smart_core/initializer/type_system/interop/operation.rb +30 -0
  52. data/lib/smart_core/initializer/type_system/registry.rb +174 -0
  53. data/lib/smart_core/initializer/type_system/registry_interface.rb +102 -0
  54. data/lib/smart_core/initializer/type_system/smart_types.rb +48 -0
  55. data/lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb +72 -0
  56. data/lib/smart_core/initializer/type_system/smart_types/operation.rb +13 -0
  57. data/lib/smart_core/initializer/type_system/smart_types/operation/base.rb +8 -0
  58. data/lib/smart_core/initializer/type_system/smart_types/operation/cast.rb +16 -0
  59. data/lib/smart_core/initializer/type_system/smart_types/operation/valid.rb +16 -0
  60. data/lib/smart_core/initializer/type_system/smart_types/operation/validate.rb +16 -0
  61. data/lib/smart_core/initializer/version.rb +2 -1
  62. data/smart_initializer.gemspec +13 -9
  63. metadata +73 -17
  64. data/lib/smart_core/initializer/type_aliasing.rb +0 -50
  65. data/lib/smart_core/initializer/type_aliasing/alias_list.rb +0 -101
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api private
4
+ # @since 0.1.0
5
+ module SmartCore::Initializer::TypeSystem::RegistryInterface
6
+ class << self
7
+ # @param base_module [Class, Module]
8
+ # @return [void]
9
+ #
10
+ # @api private
11
+ # @since 0.1.0
12
+ def extended(base_module)
13
+ base_module.instance_variable_set(
14
+ :@registry, SmartCore::Initializer::TypeSystem::Registry.new
15
+ )
16
+ base_module.instance_variable_set(
17
+ :@access_lock, SmartCore::Engine::Lock.new
18
+ )
19
+ end
20
+ end
21
+
22
+ # @option system_identifier [String, Symbol]
23
+ # @option type [Any]
24
+ # @return [SmartCore::Initializer::TypeSystem::Interop]
25
+ #
26
+ # @api private
27
+ # @since 0.1.0
28
+ def build_interop(system: system_identifier, type: type_object)
29
+ thread_safe { registry.resolve(system_identifier).create(type_object) }
30
+ end
31
+
32
+ # @param identifier [String, Symbol]
33
+ # @param interop_klass [Class<SmartCore::Initializer::TypeSystem::Interop>]
34
+ # @return [void]
35
+ #
36
+ # @api private
37
+ # @since 0.1.0
38
+ def register(identifier, interop_klass)
39
+ thread_safe { registry.register(identifier, interop_klass) }
40
+ end
41
+
42
+ # @param identifier [String, Symbol]
43
+ # @return [Class<SmartCore::Initializer::TypeSystem::Interop>]
44
+ #
45
+ # @api private
46
+ # @since 0.1.0
47
+ def resolve(identifier)
48
+ thread_safe { registry.resolve(identifier) }
49
+ end
50
+ alias_method :[], :resolve
51
+
52
+ # @return [Array<String>]
53
+ #
54
+ # @api public
55
+ # @since 0.1.0
56
+ def names
57
+ thread_safe { registry.names }
58
+ end
59
+
60
+ # @return [Array<Class<SmartCore::Initializer::TypeSystem::Interop>>]
61
+ #
62
+ # @api public
63
+ # @since 0.1.0
64
+ def systems
65
+ thread_safe { registry.to_h }
66
+ end
67
+
68
+ # @param block [Block]
69
+ # @yield [system_name, system_interop]
70
+ # @yieldparam system_name [String]
71
+ # @yieldparam system_interop [Class<SmartCore::Initializer::TypeSystem::Interop>]
72
+ # @return [Enumerable]
73
+ #
74
+ # @api public
75
+ # @since 0.1.0
76
+ def each(&block)
77
+ thread_safe { registry.each(&block) }
78
+ end
79
+
80
+ private
81
+
82
+ # @return [SmartCore::Initializer::TypeSystem::Registry]
83
+ #
84
+ # @api private
85
+ # @since 0.1.0
86
+ attr_reader :registry
87
+
88
+ # @return [SmartCore::Engine::Lock]
89
+ #
90
+ # @api private
91
+ # @since 0.1.0
92
+ attr_reader :access_lock
93
+
94
+ # @param block [Block]
95
+ # @return [Any]
96
+ #
97
+ # @api pribate
98
+ # @since 0.1.0
99
+ def thread_safe(&block)
100
+ access_lock.synchronize(&block)
101
+ end
102
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api private
4
+ # @since 0.1.0
5
+ class SmartCore::Initializer::TypeSystem::SmartTypes < SmartCore::Initializer::TypeSystem::Interop
6
+ require_relative 'smart_types/abstract_factory'
7
+ require_relative 'smart_types/operation'
8
+
9
+ type_alias('value.any', SmartCore::Types::Value::Any)
10
+ type_alias('value.nil', SmartCore::Types::Value::Nil)
11
+ type_alias('value.string', SmartCore::Types::Value::String)
12
+ type_alias('value.symbol', SmartCore::Types::Value::Symbol)
13
+ type_alias('value.text', SmartCore::Types::Value::Text)
14
+ type_alias('value.integer', SmartCore::Types::Value::Integer)
15
+ type_alias('value.float', SmartCore::Types::Value::Float)
16
+ type_alias('value.numeric', SmartCore::Types::Value::Numeric)
17
+ type_alias('value.big_decimal', SmartCore::Types::Value::BigDecimal)
18
+ type_alias('value.boolean', SmartCore::Types::Value::Boolean)
19
+ type_alias('value.array', SmartCore::Types::Value::Array)
20
+ type_alias('value.hash', SmartCore::Types::Value::Hash)
21
+ type_alias('value.proc', SmartCore::Types::Value::Proc)
22
+ type_alias('value.class', SmartCore::Types::Value::Class)
23
+ type_alias('value.module', SmartCore::Types::Value::Module)
24
+ type_alias('value.tme', SmartCore::Types::Value::Time)
25
+ type_alias('value.date_time', SmartCore::Types::Value::DateTime)
26
+ type_alias('value.date', SmartCore::Types::Value::Date)
27
+ type_alias('value.time_based', SmartCore::Types::Value::TimeBased)
28
+
29
+ type_alias(:any, SmartCore::Types::Value::Any)
30
+ type_alias(:nil, SmartCore::Types::Value::Nil)
31
+ type_alias(:string, SmartCore::Types::Value::String)
32
+ type_alias(:symbol, SmartCore::Types::Value::Symbol)
33
+ type_alias(:text, SmartCore::Types::Value::Text)
34
+ type_alias(:integer, SmartCore::Types::Value::Integer)
35
+ type_alias(:float, SmartCore::Types::Value::Float)
36
+ type_alias(:numeric, SmartCore::Types::Value::Numeric)
37
+ type_alias(:big_decimal, SmartCore::Types::Value::BigDecimal)
38
+ type_alias(:boolean, SmartCore::Types::Value::Boolean)
39
+ type_alias(:array, SmartCore::Types::Value::Array)
40
+ type_alias(:hash, SmartCore::Types::Value::Hash)
41
+ type_alias(:proc, SmartCore::Types::Value::Proc)
42
+ type_alias(:class, SmartCore::Types::Value::Class)
43
+ type_alias(:module, SmartCore::Types::Value::Module)
44
+ type_alias(:tme, SmartCore::Types::Value::Time)
45
+ type_alias(:date_time, SmartCore::Types::Value::DateTime)
46
+ type_alias(:date, SmartCore::Types::Value::Date)
47
+ type_alias(:time_based, SmartCore::Types::Value::TimeBased)
48
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem
4
+ # @api private
5
+ # @since 0.1.0
6
+ class SmartTypes::AbstractFactory < Interop::AbstractFactory
7
+ class << self
8
+ # @param type [SmartCore::Types::Primitive]
9
+ # @return [void]
10
+ #
11
+ # @raise [SmartCore::Initializer::IncorrectTypeObjectError]
12
+ #
13
+ # @api private
14
+ # @since 0.1.0
15
+ def prevent_incompatible_type!(type)
16
+ unless type.is_a?(SmartCore::Types::Primitive)
17
+ raise(
18
+ SmartCore::Initializer::IncorrectTypeObjectError,
19
+ 'Incorrect SmartCore::Types primitive ' \
20
+ '(type object should be a type of SmartCore::Types::Primitive)'
21
+ )
22
+ end
23
+ end
24
+
25
+ # @param type [SmartCore::Types::Primitive]
26
+ # @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid]
27
+ #
28
+ # @api private
29
+ # @since 0.1.0
30
+ def build_valid_operation(type)
31
+ SmartTypes::Operation::Valid.new(type)
32
+ end
33
+
34
+ # @return [SmartCore::Types::Value::Any]
35
+ #
36
+ # @api private
37
+ # @since 0.1.0
38
+ def generic_type_object
39
+ SmartCore::Types::Value::Any
40
+ end
41
+
42
+ # @param type [SmartCore::Types::Primitive]
43
+ # @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Validate]
44
+ #
45
+ # @api private
46
+ # @since 0.1.0
47
+ def build_validate_operation(type)
48
+ SmartTypes::Operation::Validate.new(type)
49
+ end
50
+
51
+ # @param type [SmartCore::Types::Primitive]
52
+ # @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Cast]
53
+ #
54
+ # @api private
55
+ # @since 0.1.0
56
+ def build_cast_operation(type)
57
+ SmartTypes::Operation::Cast.new(type)
58
+ end
59
+
60
+ # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid]
61
+ # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Validate]
62
+ # @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Cast]
63
+ # @return [SmartCore::Initializer::TypeSystem::SmartTypes]
64
+ #
65
+ # @api private
66
+ # @since 0.1.0
67
+ def build_interop(valid_op, validate_op, cast_op)
68
+ SmartTypes.new(valid_op, validate_op, cast_op)
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem
4
+ # @abstract
5
+ # @api private
6
+ # @since 0.1.0
7
+ module SmartTypes::Operation
8
+ require_relative 'operation/base'
9
+ require_relative 'operation/valid'
10
+ require_relative 'operation/validate'
11
+ require_relative 'operation/cast'
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem
4
+ # @api private
5
+ # @since 0.1.0
6
+ class SmartTypes::Operation::Base < Interop::Operation
7
+ end
8
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem::SmartTypes::Operation
4
+ # @api private
5
+ # @since 0.1.0
6
+ class Cast < Base
7
+ # @param value [Any]
8
+ # @return [Any]
9
+ #
10
+ # @api private
11
+ # @since 0.1.0
12
+ def call(value)
13
+ type.cast(value)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem::SmartTypes::Operation
4
+ # @api private
5
+ # @since 0.1.0
6
+ class Valid < Base
7
+ # @param value [Any]
8
+ # @return [Boolean]
9
+ #
10
+ # @api private
11
+ # @since 0.1.0
12
+ def call(value)
13
+ type.valid?(value)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartCore::Initializer::TypeSystem::SmartTypes::Operation
4
+ # @api private
5
+ # @since 0.1.0
6
+ class Validate < Base
7
+ # @param value [Any]
8
+ # @return [void]
9
+ #
10
+ # @api private
11
+ # @since 0.1.0
12
+ def call(value)
13
+ type.validate!(value)
14
+ end
15
+ end
16
+ end
@@ -6,6 +6,7 @@ module SmartCore
6
6
  #
7
7
  # @api public
8
8
  # @since 0.1.0
9
- VERSION = '0.1.0.alpha2'
9
+ # @version 0.3.0
10
+ VERSION = '0.3.0'
10
11
  end
11
12
  end
@@ -3,7 +3,7 @@
3
3
  require_relative 'lib/smart_core/initializer/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.required_ruby_version = Gem::Requirement.new('>= 2.4.9')
6
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4.10')
7
7
 
8
8
  spec.name = 'smart_initializer'
9
9
  spec.version = SmartCore::Initializer::VERSION
@@ -11,13 +11,16 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ['iamdaiver@gmail.com']
12
12
 
13
13
  spec.summary = 'Initializer DSL'
14
- spec.description = 'A simple and convenient way to declare complex constructors.'
14
+ spec.description = 'A simple and convenient way to declare complex constructors'
15
15
  spec.homepage = 'https://github.com/smart-rb/smart_initializer'
16
16
  spec.license = 'MIT'
17
17
 
18
- spec.metadata['homepage_uri'] = spec.homepage
19
- spec.metadata['source_code_uri'] = 'https://github.com/smart-rb/smart_initializer'
20
- spec.metadata['changelog_uri'] = 'https://github.com/smart-rb/smart_initializer/blob/master/CHANGELOG.md'
18
+ spec.metadata['homepage_uri'] =
19
+ spec.homepage
20
+ spec.metadata['source_code_uri'] =
21
+ 'https://github.com/smart-rb/smart_initializer'
22
+ spec.metadata['changelog_uri'] =
23
+ 'https://github.com/smart-rb/smart_initializer/blob/master/CHANGELOG.md'
21
24
 
22
25
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
26
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -27,12 +30,13 @@ Gem::Specification.new do |spec|
27
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
31
  spec.require_paths = ['lib']
29
32
 
30
- spec.add_dependency 'smart_engine', '~> 0.5'
31
- spec.add_dependency 'smart_types', '~> 0.1.0.alpha6'
33
+ spec.add_dependency 'smart_engine', '~> 0.7'
34
+ spec.add_dependency 'smart_types', '~> 0.1.0'
35
+ spec.add_dependency 'qonfig', '~> 0.24'
32
36
 
33
37
  spec.add_development_dependency 'bundler', '~> 2.1'
34
38
  spec.add_development_dependency 'rake', '~> 13.0'
35
39
  spec.add_development_dependency 'rspec', '~> 3.9'
36
- spec.add_development_dependency 'armitage-rubocop', '~> 0.78'
37
- spec.add_development_dependency 'simplecov', '~> 0.17'
40
+ spec.add_development_dependency 'armitage-rubocop', '~> 0.87'
41
+ spec.add_development_dependency 'simplecov', '~> 0.18'
38
42
  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.1.0.alpha2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Ibragimov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-30 00:00:00.000000000 Z
11
+ date: 2020-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: smart_engine
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.5'
19
+ version: '0.7'
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.5'
26
+ version: '0.7'
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.1.0.alpha6
33
+ version: 0.1.0
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.1.0.alpha6
40
+ version: 0.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: qonfig
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.24'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.24'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,29 +100,29 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0.78'
103
+ version: '0.87'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0.78'
110
+ version: '0.87'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: simplecov
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0.17'
117
+ version: '0.18'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0.17'
111
- description: A simple and convenient way to declare complex constructors.
124
+ version: '0.18'
125
+ description: A simple and convenient way to declare complex constructors
112
126
  email:
113
127
  - iamdaiver@gmail.com
114
128
  executables: []
@@ -127,10 +141,14 @@ files:
127
141
  - README.md
128
142
  - Rakefile
129
143
  - bin/console
144
+ - bin/rspec
130
145
  - bin/setup
146
+ - gemfiles/with_external_deps.gemfile
147
+ - gemfiles/with_external_deps.gemfile.lock
148
+ - gemfiles/without_external_deps.gemfile
149
+ - gemfiles/without_external_deps.gemfile.lock
131
150
  - lib/smart_core/initializer.rb
132
151
  - lib/smart_core/initializer/attribute.rb
133
- - lib/smart_core/initializer/attribute/definer.rb
134
152
  - lib/smart_core/initializer/attribute/factory.rb
135
153
  - lib/smart_core/initializer/attribute/finalizer.rb
136
154
  - lib/smart_core/initializer/attribute/finalizer/abstract.rb
@@ -138,12 +156,50 @@ files:
138
156
  - lib/smart_core/initializer/attribute/finalizer/instance_method.rb
139
157
  - lib/smart_core/initializer/attribute/list.rb
140
158
  - lib/smart_core/initializer/attribute/parameters.rb
159
+ - lib/smart_core/initializer/configuration.rb
141
160
  - lib/smart_core/initializer/constructor.rb
161
+ - lib/smart_core/initializer/constructor/definer.rb
142
162
  - lib/smart_core/initializer/dsl.rb
143
163
  - lib/smart_core/initializer/dsl/inheritance.rb
144
164
  - lib/smart_core/initializer/errors.rb
145
- - lib/smart_core/initializer/type_aliasing.rb
146
- - lib/smart_core/initializer/type_aliasing/alias_list.rb
165
+ - lib/smart_core/initializer/extensions.rb
166
+ - lib/smart_core/initializer/extensions/abstract.rb
167
+ - lib/smart_core/initializer/extensions/ext_init.rb
168
+ - lib/smart_core/initializer/extensions/list.rb
169
+ - lib/smart_core/initializer/functionality.rb
170
+ - lib/smart_core/initializer/instance_attribute_accessing.rb
171
+ - lib/smart_core/initializer/plugins.rb
172
+ - lib/smart_core/initializer/plugins/abstract.rb
173
+ - lib/smart_core/initializer/plugins/access_mixin.rb
174
+ - lib/smart_core/initializer/plugins/registry.rb
175
+ - lib/smart_core/initializer/plugins/registry_interface.rb
176
+ - lib/smart_core/initializer/plugins/thy_types.rb
177
+ - lib/smart_core/initializer/plugins/thy_types/errors.rb
178
+ - lib/smart_core/initializer/plugins/thy_types/thy_types.rb
179
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/abstract_factory.rb
180
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation.rb
181
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/base.rb
182
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/cast.rb
183
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/valid.rb
184
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/validate.rb
185
+ - lib/smart_core/initializer/settings.rb
186
+ - lib/smart_core/initializer/settings/duplicator.rb
187
+ - lib/smart_core/initializer/settings/type_system.rb
188
+ - lib/smart_core/initializer/type_system.rb
189
+ - lib/smart_core/initializer/type_system/interop.rb
190
+ - lib/smart_core/initializer/type_system/interop/abstract_factory.rb
191
+ - lib/smart_core/initializer/type_system/interop/aliasing.rb
192
+ - lib/smart_core/initializer/type_system/interop/aliasing/alias_list.rb
193
+ - lib/smart_core/initializer/type_system/interop/operation.rb
194
+ - lib/smart_core/initializer/type_system/registry.rb
195
+ - lib/smart_core/initializer/type_system/registry_interface.rb
196
+ - lib/smart_core/initializer/type_system/smart_types.rb
197
+ - lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb
198
+ - lib/smart_core/initializer/type_system/smart_types/operation.rb
199
+ - lib/smart_core/initializer/type_system/smart_types/operation/base.rb
200
+ - lib/smart_core/initializer/type_system/smart_types/operation/cast.rb
201
+ - lib/smart_core/initializer/type_system/smart_types/operation/valid.rb
202
+ - lib/smart_core/initializer/type_system/smart_types/operation/validate.rb
147
203
  - lib/smart_core/initializer/version.rb
148
204
  - smart_initializer.gemspec
149
205
  homepage: https://github.com/smart-rb/smart_initializer
@@ -161,12 +217,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
217
  requirements:
162
218
  - - ">="
163
219
  - !ruby/object:Gem::Version
164
- version: 2.4.9
220
+ version: 2.4.10
165
221
  required_rubygems_version: !ruby/object:Gem::Requirement
166
222
  requirements:
167
- - - ">"
223
+ - - ">="
168
224
  - !ruby/object:Gem::Version
169
- version: 1.3.1
225
+ version: '0'
170
226
  requirements: []
171
227
  rubygems_version: 3.1.2
172
228
  signing_key: