low_type 1.1.0 → 1.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a175f78281d51fe16720ca8231b1790506d2eea0d96660c52ff78f1717689836
4
- data.tar.gz: f8615b0754c2a5e30e99e37922311d7d9436a37025f3a1a76334d4b14da21e7d
3
+ metadata.gz: d8dae7f03ed51a1acea72d53deec50af0722e9c57ac8baab72297420bae36f4b
4
+ data.tar.gz: d7de0927fb139ac7d2b934c01f464224bb30fe2fbba6ca8b62a789955561e602
5
5
  SHA512:
6
- metadata.gz: 04d69b82160152e0c04cc114e196c68fc5122dc79fa3b622ebafa21106a01ab8d44d7a483df497f2cc51c8280c2038bbf114b680505a2c9e35b73b9cbef2cd04
7
- data.tar.gz: f2baaeeeaaec312a7306c12094e3b4cd661a935e3b6072b8824df5451fbd88538ffcacc48ba6beedc06e75ec2d685f015227289c529f051cadd246de127aa033
6
+ metadata.gz: f4a91869b8c041091cd2dcadfb5ff931883041f7d57319b6cfb60b8ef7c1607924d81b93fc1a936724a3d577e904ed1d76c5bb03c89d6bf872e6446f0490f52e
7
+ data.tar.gz: d42d49968af57b0122e76449d01a5ed118bb4394d28fe42a6a9ec9095f6900ec02940e237e75fe3c1c4417b307c0b85497193a492b721e3c139902a15d92be7b
@@ -6,30 +6,30 @@ module LowType
6
6
  # TODO: Unit test.
7
7
  class TypeQuery
8
8
  class << self
9
- def type?(type)
10
- basic_type?(type:) || complex_type?(type:)
9
+ def type?(expression)
10
+ basic_type?(expression:) || complex_type?(expression:)
11
+ end
12
+
13
+ def typed_array?(expression:)
14
+ expression.is_a?(Array) && (basic_type?(expression: expression.first) || expression.first.is_a?(TypeExpression))
11
15
  end
12
16
 
13
17
  def value?(value)
14
- !basic_type?(type: value) && !complex_type?(type: value)
18
+ !basic_type?(expression: value) && !complex_type?(expression: value)
15
19
  end
16
20
 
17
- def complex_type?(type:)
18
- LowType::COMPLEX_TYPES.include?(type) || typed_array?(type:) || typed_hash?(type:)
21
+ def complex_type?(expression:)
22
+ LowType::COMPLEX_TYPES.include?(expression) || typed_array?(expression:) || typed_hash?(expression:)
19
23
  end
20
24
 
21
25
  private
22
26
 
23
- def basic_type?(type:)
24
- type.instance_of?(Class)
25
- end
26
-
27
- def typed_array?(type:)
28
- type.is_a?(Array) && (basic_type?(type: type.first) || type.first.is_a?(TypeExpression))
27
+ def basic_type?(expression:)
28
+ expression.instance_of?(Class)
29
29
  end
30
30
 
31
- def typed_hash?(type:)
32
- type.is_a?(Hash) && basic_type?(type: type.keys.first) && basic_type?(type: type.values.first)
31
+ def typed_hash?(expression:)
32
+ expression.is_a?(Hash) && basic_type?(expression: expression.keys.first) && basic_type?(expression: expression.values.first)
33
33
  end
34
34
  end
35
35
  end
data/lib/syntax/syntax.rb CHANGED
@@ -5,8 +5,8 @@ require_relative '../queries/type_query'
5
5
  module LowType
6
6
  module Syntax
7
7
  refine Array.singleton_class do
8
- def [](*types)
9
- return TypeExpression.new(type: [*types]) if types.all? { |type| TypeQuery.type?(type) }
8
+ def [](*expression)
9
+ return TypeExpression.new(type: [*expression]) if TypeQuery.type?(expression.first) || TypeQuery.typed_array?(expression:)
10
10
 
11
11
  super
12
12
  end
@@ -122,7 +122,7 @@ module LowType
122
122
 
123
123
  def type_matches_value?(type:, value:, proxy:)
124
124
  if type.instance_of?(Class)
125
- return type.match?(value:) if LowType::TypeQuery.complex_type?(type:)
125
+ return type.match?(value:) if LowType::TypeQuery.complex_type?(expression: type)
126
126
 
127
127
  return type == value.class
128
128
  elsif type.instance_of?(::LowType::TypeExpression)
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LowType
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: low_type
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi