smart_types 0.1.0.alpha3 → 0.2.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/.travis.yml +6 -5
  4. data/CHANGELOG.md +17 -0
  5. data/Gemfile.lock +74 -48
  6. data/README.md +292 -22
  7. data/Rakefile +1 -1
  8. data/bin/console +2 -2
  9. data/lib/smart_core/types/errors.rb +4 -0
  10. data/lib/smart_core/types/primitive.rb +67 -20
  11. data/lib/smart_core/types/primitive/factory.rb +48 -8
  12. data/lib/smart_core/types/primitive/factory/definition_context.rb +116 -6
  13. data/lib/smart_core/types/primitive/invariant_control.rb +64 -0
  14. data/lib/smart_core/types/primitive/invariant_control/chain.rb +58 -0
  15. data/lib/smart_core/types/primitive/invariant_control/chain/result.rb +64 -0
  16. data/lib/smart_core/types/primitive/invariant_control/factory.rb +54 -0
  17. data/lib/smart_core/types/primitive/invariant_control/factory/chain_definition_context.rb +39 -0
  18. data/lib/smart_core/types/primitive/invariant_control/result.rb +104 -0
  19. data/lib/smart_core/types/primitive/invariant_control/single.rb +54 -0
  20. data/lib/smart_core/types/primitive/invariant_control/single/result.rb +63 -0
  21. data/lib/smart_core/types/primitive/mult_factory.rb +25 -10
  22. data/lib/smart_core/types/primitive/mult_factory/definition_context.rb +5 -3
  23. data/lib/smart_core/types/primitive/mult_validator.rb +34 -0
  24. data/lib/smart_core/types/primitive/mult_validator/result.rb +8 -0
  25. data/lib/smart_core/types/primitive/nilable_factory.rb +24 -9
  26. data/lib/smart_core/types/primitive/nilable_validator.rb +83 -0
  27. data/lib/smart_core/types/primitive/nilable_validator/result.rb +78 -0
  28. data/lib/smart_core/types/primitive/sum_factory.rb +25 -10
  29. data/lib/smart_core/types/primitive/sum_factory/definition_context.rb +4 -2
  30. data/lib/smart_core/types/primitive/sum_validator.rb +101 -0
  31. data/lib/smart_core/types/primitive/sum_validator/result.rb +100 -0
  32. data/lib/smart_core/types/primitive/undefined_caster.rb +3 -4
  33. data/lib/smart_core/types/primitive/validator.rb +84 -0
  34. data/lib/smart_core/types/primitive/validator/result.rb +78 -0
  35. data/lib/smart_core/types/system.rb +21 -5
  36. data/lib/smart_core/types/value.rb +17 -0
  37. data/lib/smart_core/types/value/big_decimal.rb +28 -0
  38. data/lib/smart_core/types/value/comparable.rb +13 -0
  39. data/lib/smart_core/types/value/date.rb +21 -0
  40. data/lib/smart_core/types/value/date_time.rb +21 -0
  41. data/lib/smart_core/types/value/enumerable.rb +13 -0
  42. data/lib/smart_core/types/value/enumerator.rb +13 -0
  43. data/lib/smart_core/types/value/enumerator_chain.rb +13 -0
  44. data/lib/smart_core/types/value/float.rb +6 -2
  45. data/lib/smart_core/types/value/hash.rb +8 -1
  46. data/lib/smart_core/types/value/integer.rb +10 -3
  47. data/lib/smart_core/types/value/io.rb +13 -0
  48. data/lib/smart_core/types/value/method.rb +9 -0
  49. data/lib/smart_core/types/value/nil.rb +9 -0
  50. data/lib/smart_core/types/value/numeric.rb +13 -3
  51. data/lib/smart_core/types/value/proc.rb +11 -1
  52. data/lib/smart_core/types/value/range.rb +9 -0
  53. data/lib/smart_core/types/value/rational.rb +13 -0
  54. data/lib/smart_core/types/value/set.rb +13 -0
  55. data/lib/smart_core/types/value/string.rb +7 -1
  56. data/lib/smart_core/types/value/string_io.rb +13 -0
  57. data/lib/smart_core/types/value/symbol.rb +7 -1
  58. data/lib/smart_core/types/value/text.rb +16 -1
  59. data/lib/smart_core/types/value/time.rb +21 -0
  60. data/lib/smart_core/types/value/time_based.rb +29 -0
  61. data/lib/smart_core/types/value/unbound_method.rb +9 -0
  62. data/lib/smart_core/types/version.rb +2 -2
  63. data/smart_types.gemspec +6 -5
  64. metadata +64 -22
  65. data/lib/smart_core/types/primitive/mult_checker.rb +0 -31
  66. data/lib/smart_core/types/primitive/nilable_checker.rb +0 -37
  67. data/lib/smart_core/types/primitive/sum_checker.rb +0 -31
  68. data/lib/smart_core/types/system/definition_dsl.rb +0 -40
  69. data/lib/smart_core/types/system/producer_dsl.rb +0 -30
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:Enumerator) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:EnumeratorChain) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -9,9 +9,13 @@ SmartCore::Types::Value.define_type(:Float) do |type|
9
9
 
10
10
  type.define_caster do |value|
11
11
  begin
12
- Float(value)
12
+ ::Kernel.Float(value)
13
13
  rescue ::TypeError, ::ArgumentError
14
- value.to_f
14
+ begin
15
+ ::Kernel.Float(value.to_f)
16
+ rescue ::NoMethodError, ::TypeError, ::ArgumentError
17
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Float')
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -11,7 +11,14 @@ SmartCore::Types::Value.define_type(:Hash) do |type|
11
11
  begin
12
12
  ::Kernel.Hash(value)
13
13
  rescue ::TypeError
14
- {}
14
+ begin
15
+ # NOTE:
16
+ # - ::Kernel.Hash does not invoke `#to_h` under the hood (it invokes `#to_hash`)
17
+ # - ::Kernel.Hash is used to validate the returned value from `#to_h`
18
+ ::Kernel.Hash(value.to_h)
19
+ rescue ::TypeError, ::NoMethodError, ::ArgumentError
20
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Hash')
21
+ end
15
22
  end
16
23
  end
17
24
  end
@@ -9,9 +9,16 @@ SmartCore::Types::Value.define_type(:Integer) do |type|
9
9
 
10
10
  type.define_caster do |value|
11
11
  begin
12
- Integer(value)
13
- rescue ::TypeError, ::ArgumentError
14
- value.to_i
12
+ ::Kernel.Integer(value)
13
+ rescue ::TypeError, ::ArgumentError, ::FloatDomainError
14
+ begin
15
+ # NOTE: for cases like this:
16
+ # => ::Kernel.Integer(nil) # => ::TypeError
17
+ # => ::Kernel.Integer(nil.to_i) # => 0 (::Kernel.Integer used as validation layer)
18
+ ::Kernel.Integer(value.to_i)
19
+ rescue ::TypeError, ::NoMethodError, ::ArgumentError, ::FloatDomainError
20
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Integer')
21
+ end
15
22
  end
16
23
  end
17
24
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:IO) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:Method) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.1.0
5
+ SmartCore::Types::Value.define_type(:Nil) do |type|
6
+ type.define_checker do |value|
7
+ value == nil # NOTE: #nil? is not used cuz BasicObject hasn't #nil? method
8
+ end
9
+ end
@@ -8,10 +8,20 @@ SmartCore::Types::Value.define_type(:Numeric) do |type|
8
8
  end
9
9
 
10
10
  type.define_caster do |value|
11
+ next value if value.is_a?(::Numeric)
12
+
11
13
  begin
12
- Float(value)
13
- rescue ::TypeError, ::ArgumentError
14
- value.to_f
14
+ SmartCore::Types::Value::Float.cast(value)
15
+ rescue SmartCore::Types::TypeCastingError
16
+ begin
17
+ SmartCore::Types::Value::Integer.cast(value)
18
+ rescue SmartCore::Types::TypeCastingError
19
+ begin
20
+ SmartCore::Types::Value::BigDecimal.cast(value)
21
+ rescue SmartCore::Types::TypeCastingError
22
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Numeric')
23
+ end
24
+ end
15
25
  end
16
26
  end
17
27
  end
@@ -7,5 +7,15 @@ SmartCore::Types::Value.define_type(:Proc) do |type|
7
7
  value.is_a?(::Proc)
8
8
  end
9
9
 
10
- type.define_caster(&:to_proc)
10
+ type.define_caster do |value|
11
+ begin
12
+ value.to_proc.tap do |result|
13
+ unless result.is_a?(::Proc)
14
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Proc')
15
+ end
16
+ end
17
+ rescue ::NoMethodError
18
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Proc')
19
+ end
20
+ end
11
21
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:Range) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:Rational) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:Set) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -7,5 +7,11 @@ SmartCore::Types::Value.define_type(:String) do |type|
7
7
  value.is_a?(::String)
8
8
  end
9
9
 
10
- type.define_caster(&:to_s)
10
+ type.define_caster do |value|
11
+ begin
12
+ ::Kernel.String(value)
13
+ rescue ::TypeError, ::ArgumentError
14
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to String')
15
+ end
16
+ end
11
17
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:StringIO) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+
10
+ type.define_caster do |value|
11
+ # TODO: realize
12
+ end
13
+ end
@@ -7,5 +7,11 @@ SmartCore::Types::Value.define_type(:Symbol) do |type|
7
7
  value.is_a?(::Symbol)
8
8
  end
9
9
 
10
- type.define_caster(&:to_sym)
10
+ type.define_caster do |value|
11
+ begin
12
+ value.to_sym
13
+ rescue ::NoMethodError, ::ArgumentError
14
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Symbol')
15
+ end
16
+ end
11
17
  end
@@ -5,4 +5,19 @@
5
5
  SmartCore::Types::Value::Text = SmartCore::Types::System.type_sum(
6
6
  SmartCore::Types::Value::String,
7
7
  SmartCore::Types::Value::Symbol
8
- ) { |type| type.define_caster(&:to_s) }
8
+ ) do |type|
9
+ type.define_caster do |value|
10
+ next value if SmartCore::Types::Value::String.valid?(value)
11
+ next value if SmartCore::Types::Value::Symbol.valid?(value)
12
+
13
+ begin
14
+ SmartCore::Types::Value::String.cast(value)
15
+ rescue SmartCore::Types::TypeCastingError
16
+ begin
17
+ SmartCore::Types::Value::Symbol.cast(value)
18
+ rescue SmartCore::Types::TypeCastingError
19
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to text')
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'time'
4
+
5
+ # @api public
6
+ # @since 0.1.0
7
+ SmartCore::Types::Value.define_type(:Time) do |type|
8
+ type.define_checker do |value|
9
+ value.is_a?(::Time)
10
+ end
11
+
12
+ type.define_caster do |value|
13
+ next value if value.is_a?(::Time)
14
+
15
+ begin
16
+ SmartCore::Types::Value::Integer.valid?(value) ? ::Time.at(value) : ::Time.parse(value)
17
+ rescue ::TypeError, ::ArgumentError
18
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to Time')
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.1.0
5
+ SmartCore::Types::Value::TimeBased = SmartCore::Types::System.type_sum(
6
+ SmartCore::Types::Value::Time,
7
+ SmartCore::Types::Value::DateTime,
8
+ SmartCore::Types::Value::Date
9
+ ) do |type|
10
+ type.define_caster do |value|
11
+ next value if SmartCore::Types::Value::Time.valid?(value)
12
+ next value if SmartCore::Types::Value::DateTime.valid?(value)
13
+ next value if SmartCore::Types::Value::Date.valid?(value)
14
+
15
+ begin
16
+ SmartCore::Types::Value::Time.cast(value)
17
+ rescue SmartCore::Types::TypeCastingError
18
+ begin
19
+ SmartCore::Types::Value::DateTime.cast(value)
20
+ rescue SmartCore::Types::TypeCastingError
21
+ begin
22
+ SmartCore::Types::Value::Date.cast(value)
23
+ rescue SmartCore::Types::TypeCastingError
24
+ raise(SmartCore::Types::TypeCastingError, 'Non-castable to time-based type')
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.x.0
5
+ SmartCore::Types::Value.define_type(:UnboundMethod) do |type|
6
+ type.define_checker do |value|
7
+ # TODO: realize
8
+ end
9
+ end
@@ -6,7 +6,7 @@ module SmartCore
6
6
  #
7
7
  # @api public
8
8
  # @since 0.1.0
9
- # @version 0.1.0
10
- VERSION = '0.1.0.alpha3'
9
+ # @version 0.2.0
10
+ VERSION = '0.2.0'
11
11
  end
12
12
  end
@@ -3,7 +3,7 @@
3
3
  require_relative 'lib/smart_core/types/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_types'
9
9
  spec.version = SmartCore::Types::VERSION
@@ -32,11 +32,12 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ['lib']
34
34
 
35
- spec.add_dependency 'smart_engine', '~> 0.5'
35
+ spec.add_dependency 'smart_engine', '~> 0.7'
36
36
 
37
37
  spec.add_development_dependency 'bundler', '~> 2.1'
38
38
  spec.add_development_dependency 'rake', '~> 13.0'
39
- spec.add_development_dependency 'rspec', '~> 3.9'
40
- spec.add_development_dependency 'armitage-rubocop', '~> 0.78'
41
- spec.add_development_dependency 'simplecov', '~> 0.17'
39
+ spec.add_development_dependency 'rspec', '~> 3.10'
40
+ spec.add_development_dependency 'armitage-rubocop', '~> 1.3'
41
+ spec.add_development_dependency 'simplecov', '~> 0.19'
42
+ spec.add_development_dependency 'pry', '~> 0.13'
42
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha3
4
+ version: 0.2.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: 2020-01-24 00:00:00.000000000 Z
11
+ date: 2020-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: smart_engine
@@ -16,14 +16,14 @@ 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: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,42 +58,56 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.9'
61
+ version: '3.10'
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: '3.9'
68
+ version: '3.10'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: armitage-rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.78'
75
+ version: '1.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.78'
82
+ version: '1.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.17'
89
+ version: '0.19'
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: '0.17'
96
+ version: '0.19'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.13'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.13'
97
111
  description: |
98
112
  Full-featured type system for any ruby project. Supports custom type definitioning,
99
113
  type validation, type casting and type categorizing. Provides a set of commonly used type
@@ -124,33 +138,61 @@ files:
124
138
  - lib/smart_core/types/primitive/checker.rb
125
139
  - lib/smart_core/types/primitive/factory.rb
126
140
  - lib/smart_core/types/primitive/factory/definition_context.rb
127
- - lib/smart_core/types/primitive/mult_checker.rb
141
+ - lib/smart_core/types/primitive/invariant_control.rb
142
+ - lib/smart_core/types/primitive/invariant_control/chain.rb
143
+ - lib/smart_core/types/primitive/invariant_control/chain/result.rb
144
+ - lib/smart_core/types/primitive/invariant_control/factory.rb
145
+ - lib/smart_core/types/primitive/invariant_control/factory/chain_definition_context.rb
146
+ - lib/smart_core/types/primitive/invariant_control/result.rb
147
+ - lib/smart_core/types/primitive/invariant_control/single.rb
148
+ - lib/smart_core/types/primitive/invariant_control/single/result.rb
128
149
  - lib/smart_core/types/primitive/mult_factory.rb
129
150
  - lib/smart_core/types/primitive/mult_factory/definition_context.rb
130
- - lib/smart_core/types/primitive/nilable_checker.rb
151
+ - lib/smart_core/types/primitive/mult_validator.rb
152
+ - lib/smart_core/types/primitive/mult_validator/result.rb
131
153
  - lib/smart_core/types/primitive/nilable_factory.rb
132
- - lib/smart_core/types/primitive/sum_checker.rb
154
+ - lib/smart_core/types/primitive/nilable_validator.rb
155
+ - lib/smart_core/types/primitive/nilable_validator/result.rb
133
156
  - lib/smart_core/types/primitive/sum_factory.rb
134
157
  - lib/smart_core/types/primitive/sum_factory/definition_context.rb
158
+ - lib/smart_core/types/primitive/sum_validator.rb
159
+ - lib/smart_core/types/primitive/sum_validator/result.rb
135
160
  - lib/smart_core/types/primitive/undefined_caster.rb
161
+ - lib/smart_core/types/primitive/validator.rb
162
+ - lib/smart_core/types/primitive/validator/result.rb
136
163
  - lib/smart_core/types/struct.rb
137
164
  - lib/smart_core/types/system.rb
138
- - lib/smart_core/types/system/definition_dsl.rb
139
- - lib/smart_core/types/system/producer_dsl.rb
140
165
  - lib/smart_core/types/value.rb
141
166
  - lib/smart_core/types/value/any.rb
142
167
  - lib/smart_core/types/value/array.rb
168
+ - lib/smart_core/types/value/big_decimal.rb
143
169
  - lib/smart_core/types/value/boolean.rb
144
170
  - lib/smart_core/types/value/class.rb
171
+ - lib/smart_core/types/value/comparable.rb
172
+ - lib/smart_core/types/value/date.rb
173
+ - lib/smart_core/types/value/date_time.rb
174
+ - lib/smart_core/types/value/enumerable.rb
175
+ - lib/smart_core/types/value/enumerator.rb
176
+ - lib/smart_core/types/value/enumerator_chain.rb
145
177
  - lib/smart_core/types/value/float.rb
146
178
  - lib/smart_core/types/value/hash.rb
147
179
  - lib/smart_core/types/value/integer.rb
180
+ - lib/smart_core/types/value/io.rb
181
+ - lib/smart_core/types/value/method.rb
148
182
  - lib/smart_core/types/value/module.rb
183
+ - lib/smart_core/types/value/nil.rb
149
184
  - lib/smart_core/types/value/numeric.rb
150
185
  - lib/smart_core/types/value/proc.rb
186
+ - lib/smart_core/types/value/range.rb
187
+ - lib/smart_core/types/value/rational.rb
188
+ - lib/smart_core/types/value/set.rb
151
189
  - lib/smart_core/types/value/string.rb
190
+ - lib/smart_core/types/value/string_io.rb
152
191
  - lib/smart_core/types/value/symbol.rb
153
192
  - lib/smart_core/types/value/text.rb
193
+ - lib/smart_core/types/value/time.rb
194
+ - lib/smart_core/types/value/time_based.rb
195
+ - lib/smart_core/types/value/unbound_method.rb
154
196
  - lib/smart_core/types/version.rb
155
197
  - smart_types.gemspec
156
198
  homepage: https://github.com/smart-rb/smart_types
@@ -160,7 +202,7 @@ metadata:
160
202
  homepage_uri: https://github.com/smart-rb/smart_types
161
203
  source_code_uri: https://github.com/smart-rb/smart_types
162
204
  changelog_uri: https://github.com/smart-rb/smart_types/blob/master/CHANGELOG.md
163
- post_install_message:
205
+ post_install_message:
164
206
  rdoc_options: []
165
207
  require_paths:
166
208
  - lib
@@ -168,15 +210,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
210
  requirements:
169
211
  - - ">="
170
212
  - !ruby/object:Gem::Version
171
- version: 2.4.9
213
+ version: 2.4.10
172
214
  required_rubygems_version: !ruby/object:Gem::Requirement
173
215
  requirements:
174
- - - ">"
216
+ - - ">="
175
217
  - !ruby/object:Gem::Version
176
- version: 1.3.1
218
+ version: '0'
177
219
  requirements: []
178
- rubygems_version: 3.1.2
179
- signing_key:
220
+ rubygems_version: 3.2.0.rc.1
221
+ signing_key:
180
222
  specification_version: 4
181
223
  summary: Full-featured type system for any ruby project.
182
224
  test_files: []