smart_types 0.1.0.alpha3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []