smart_initializer 0.1.0.alpha4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.travis.yml +36 -5
  4. data/CHANGELOG.md +3 -0
  5. data/Gemfile.lock +48 -31
  6. data/README.md +151 -22
  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 +99 -0
  11. data/gemfiles/without_external_deps.gemfile +5 -0
  12. data/gemfiles/without_external_deps.gemfile.lock +97 -0
  13. data/lib/smart_core/initializer.rb +38 -35
  14. data/lib/smart_core/initializer/attribute.rb +12 -4
  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/configurable_module.rb +27 -0
  18. data/lib/smart_core/initializer/configuration.rb +33 -0
  19. data/lib/smart_core/initializer/constructor.rb +9 -6
  20. data/lib/smart_core/initializer/constructor/definer.rb +34 -11
  21. data/lib/smart_core/initializer/dsl.rb +23 -6
  22. data/lib/smart_core/initializer/errors.rb +44 -0
  23. data/lib/smart_core/initializer/plugins.rb +17 -0
  24. data/lib/smart_core/initializer/plugins/abstract.rb +55 -0
  25. data/lib/smart_core/initializer/plugins/access_mixin.rb +47 -0
  26. data/lib/smart_core/initializer/plugins/registry.rb +166 -0
  27. data/lib/smart_core/initializer/plugins/registry_interface.rb +77 -0
  28. data/lib/smart_core/initializer/plugins/thy_types.rb +30 -0
  29. data/lib/smart_core/initializer/plugins/thy_types/errors.rb +11 -0
  30. data/lib/smart_core/initializer/plugins/thy_types/thy_types.rb +23 -0
  31. data/lib/smart_core/initializer/plugins/thy_types/thy_types/abstract_factory.rb +78 -0
  32. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation.rb +12 -0
  33. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/base.rb +9 -0
  34. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/cast.rb +21 -0
  35. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/valid.rb +16 -0
  36. data/lib/smart_core/initializer/plugins/thy_types/thy_types/operation/validate.rb +19 -0
  37. data/lib/smart_core/initializer/settings.rb +49 -0
  38. data/lib/smart_core/initializer/settings/duplicator.rb +20 -0
  39. data/lib/smart_core/initializer/settings/type_system.rb +69 -0
  40. data/lib/smart_core/initializer/type_system.rb +16 -0
  41. data/lib/smart_core/initializer/type_system/interop.rb +103 -0
  42. data/lib/smart_core/initializer/type_system/interop/abstract_factory.rb +70 -0
  43. data/lib/smart_core/initializer/type_system/interop/aliasing.rb +72 -0
  44. data/lib/smart_core/initializer/type_system/interop/aliasing/alias_list.rb +141 -0
  45. data/lib/smart_core/initializer/type_system/interop/operation.rb +30 -0
  46. data/lib/smart_core/initializer/type_system/registry.rb +174 -0
  47. data/lib/smart_core/initializer/type_system/registry_interface.rb +102 -0
  48. data/lib/smart_core/initializer/type_system/smart_types.rb +48 -0
  49. data/lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb +72 -0
  50. data/lib/smart_core/initializer/type_system/smart_types/operation.rb +13 -0
  51. data/lib/smart_core/initializer/type_system/smart_types/operation/base.rb +8 -0
  52. data/lib/smart_core/initializer/type_system/smart_types/operation/cast.rb +16 -0
  53. data/lib/smart_core/initializer/type_system/smart_types/operation/valid.rb +16 -0
  54. data/lib/smart_core/initializer/type_system/smart_types/operation/validate.rb +16 -0
  55. data/lib/smart_core/initializer/version.rb +1 -1
  56. data/smart_initializer.gemspec +13 -9
  57. metadata +67 -17
  58. data/lib/smart_core/initializer/attribute/init_extension.rb +0 -4
  59. data/lib/smart_core/initializer/type_aliasing.rb +0 -50
  60. data/lib/smart_core/initializer/type_aliasing/alias_list.rb +0 -101
@@ -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,6 @@ module SmartCore
6
6
  #
7
7
  # @api public
8
8
  # @since 0.1.0
9
- VERSION = '0.1.0.alpha4'
9
+ VERSION = '0.1.0'
10
10
  end
11
11
  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.6'
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.81'
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.alpha4
4
+ version: 0.1.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-02-02 00:00:00.000000000 Z
11
+ date: 2020-05-10 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.6'
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.6'
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.81'
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.81'
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,7 +141,12 @@ 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
152
  - lib/smart_core/initializer/attribute/factory.rb
@@ -135,9 +154,10 @@ files:
135
154
  - lib/smart_core/initializer/attribute/finalizer/abstract.rb
136
155
  - lib/smart_core/initializer/attribute/finalizer/anonymous_block.rb
137
156
  - lib/smart_core/initializer/attribute/finalizer/instance_method.rb
138
- - lib/smart_core/initializer/attribute/init_extension.rb
139
157
  - lib/smart_core/initializer/attribute/list.rb
140
158
  - lib/smart_core/initializer/attribute/parameters.rb
159
+ - lib/smart_core/initializer/configurable_module.rb
160
+ - lib/smart_core/initializer/configuration.rb
141
161
  - lib/smart_core/initializer/constructor.rb
142
162
  - lib/smart_core/initializer/constructor/definer.rb
143
163
  - lib/smart_core/initializer/dsl.rb
@@ -147,8 +167,38 @@ files:
147
167
  - lib/smart_core/initializer/extensions/abstract.rb
148
168
  - lib/smart_core/initializer/extensions/ext_init.rb
149
169
  - lib/smart_core/initializer/extensions/list.rb
150
- - lib/smart_core/initializer/type_aliasing.rb
151
- - lib/smart_core/initializer/type_aliasing/alias_list.rb
170
+ - lib/smart_core/initializer/plugins.rb
171
+ - lib/smart_core/initializer/plugins/abstract.rb
172
+ - lib/smart_core/initializer/plugins/access_mixin.rb
173
+ - lib/smart_core/initializer/plugins/registry.rb
174
+ - lib/smart_core/initializer/plugins/registry_interface.rb
175
+ - lib/smart_core/initializer/plugins/thy_types.rb
176
+ - lib/smart_core/initializer/plugins/thy_types/errors.rb
177
+ - lib/smart_core/initializer/plugins/thy_types/thy_types.rb
178
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/abstract_factory.rb
179
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation.rb
180
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/base.rb
181
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/cast.rb
182
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/valid.rb
183
+ - lib/smart_core/initializer/plugins/thy_types/thy_types/operation/validate.rb
184
+ - lib/smart_core/initializer/settings.rb
185
+ - lib/smart_core/initializer/settings/duplicator.rb
186
+ - lib/smart_core/initializer/settings/type_system.rb
187
+ - lib/smart_core/initializer/type_system.rb
188
+ - lib/smart_core/initializer/type_system/interop.rb
189
+ - lib/smart_core/initializer/type_system/interop/abstract_factory.rb
190
+ - lib/smart_core/initializer/type_system/interop/aliasing.rb
191
+ - lib/smart_core/initializer/type_system/interop/aliasing/alias_list.rb
192
+ - lib/smart_core/initializer/type_system/interop/operation.rb
193
+ - lib/smart_core/initializer/type_system/registry.rb
194
+ - lib/smart_core/initializer/type_system/registry_interface.rb
195
+ - lib/smart_core/initializer/type_system/smart_types.rb
196
+ - lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb
197
+ - lib/smart_core/initializer/type_system/smart_types/operation.rb
198
+ - lib/smart_core/initializer/type_system/smart_types/operation/base.rb
199
+ - lib/smart_core/initializer/type_system/smart_types/operation/cast.rb
200
+ - lib/smart_core/initializer/type_system/smart_types/operation/valid.rb
201
+ - lib/smart_core/initializer/type_system/smart_types/operation/validate.rb
152
202
  - lib/smart_core/initializer/version.rb
153
203
  - smart_initializer.gemspec
154
204
  homepage: https://github.com/smart-rb/smart_initializer
@@ -166,12 +216,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
216
  requirements:
167
217
  - - ">="
168
218
  - !ruby/object:Gem::Version
169
- version: 2.4.9
219
+ version: 2.4.10
170
220
  required_rubygems_version: !ruby/object:Gem::Requirement
171
221
  requirements:
172
- - - ">"
222
+ - - ">="
173
223
  - !ruby/object:Gem::Version
174
- version: 1.3.1
224
+ version: '0'
175
225
  requirements: []
176
226
  rubygems_version: 3.1.2
177
227
  signing_key:
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class SmartCore::Initializer::Attribute::InitExtention
4
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # @api private
4
- # @since 0.1.0
5
- module SmartCore::Initializer::TypeAliasing
6
- require_relative 'type_aliasing/alias_list'
7
-
8
- class << self
9
- # @param base_klass [Class]
10
- # @return [void]
11
- #
12
- # @api private
13
- # @since 0.1.0
14
- def extended(base_klass)
15
- base_klass.instance_variable_set(:@__type_aliases__, AliasList.new)
16
- base_klass.extend(ClassMethods)
17
- end
18
- end
19
-
20
- # @api private
21
- # @since 0.1.0
22
- module ClassMethods
23
- # @return [SmartCore::Initializer::TypeAliasing::AliasList]
24
- #
25
- # @api private
26
- # @since 0.1.0
27
- def __type_aliases__
28
- @__type_aliases__
29
- end
30
-
31
- # @param alias_name [String, Symbol]
32
- # @param type [SmartCore::Types::Primitive]
33
- # @return [void]
34
- #
35
- # @api public
36
- # @since 0.1.0
37
- def type_alias(alias_name, type)
38
- __type_aliases__.associate(alias_name, type)
39
- end
40
-
41
- # @param alias_name [String, Symbol]
42
- # @return [SmartCore::Types::Primitive]
43
- #
44
- # @api public
45
- # @since 0.1.0
46
- def type_from_alias(alias_name)
47
- __type_aliases__.resolve(alias_name)
48
- end
49
- end
50
- end