smart_initializer 0.1.0.alpha2 → 0.3.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.
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: