eqq 0.0.1 → 0.0.2

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: 4bca6982f43fb57004acdca8facb594d0d178999bdcb323a41663138d9f00325
4
- data.tar.gz: 31f2e909e814925d47cf64824ac1267597fc2b85d3a4704ed9612704f6b41071
3
+ metadata.gz: fd093a7aa8c034327d463c56bfe120a8ecc48b52649ba7900491f05cc130cc38
4
+ data.tar.gz: 13f7ca2f2f40d9be41abd4408f5486b892f345347eb07eeb3f4d936c47cc92ab
5
5
  SHA512:
6
- metadata.gz: e30c7e8c661ffb9764e9c604503454e3bd29de40075f6e8296540d0b3a41a482c1221178d155e2c090b1b075ea4ec4d6f63306d5eaeba3b69e505e981abd0712
7
- data.tar.gz: '0885388e12a098f0c26415b252f0bc552c39e526df9ffbed2beffcc046ffe778eee99a71120e23e6ea80c61c1aee67b5769208196fee9d422646a6d90e4e92d4'
6
+ metadata.gz: 2e510f5313e0f890bf3c8277a413f937b0a26e2ba58e501591288556783bc5fffc944c23a1216ddf95308a111b06c6ac82557526d9f7de49ef9dbe7806f93bb6
7
+ data.tar.gz: 719905cbd2f71a388e13ca0427b7db49115513ce11395a436d8ef9fc43397c9c77cc408135862147bbfc3bac3fb36615332752f56ab28e4136bc74b8db3f97dd
data/MIT-LICENSE.txt CHANGED
@@ -7,7 +7,7 @@ of this software and associated documentation files (the "Software"), to deal
7
7
  in the Software without restriction, including without limitation the rights
8
8
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
9
  copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
10
+ furnished to do so, subject to the following patterns:
11
11
 
12
12
  The above copyright notice and this permission notice shall be included in all
13
13
  copies or substantial portions of the Software.
data/README.md CHANGED
@@ -9,12 +9,12 @@ Pattern objects builder.
9
9
 
10
10
  ## Usage
11
11
 
12
- Require Ruby 2.5 or later
12
+ Require Ruby 2.6 or later
13
13
 
14
14
  Add below code into your Gemfile
15
15
 
16
16
  ```ruby
17
- gem 'eqq', '>= 0.0.1', '< 0.1.0'
17
+ gem 'eqq', '0.0.2'
18
18
  ```
19
19
 
20
20
  ### Overview
data/lib/eqq.rb CHANGED
@@ -2,238 +2,40 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Copyright (c) 2011 Kenichi Kamiya
5
- # Forked from https://github.com/kachick/eqq at 2021
5
+ # Forked from https://github.com/kachick/validation at 2021
6
6
 
7
- module Eqq
8
- def self.conditionable?(object)
9
- case object
10
- when Proc, Method
11
- object.arity == 1
12
- else
13
- begin
14
- object.respond_to?(:===)
15
- rescue NoMethodError
16
- false
17
- end
18
- end
19
- end
20
-
21
- def self.define(&block)
22
- module_exec(&block)
23
- end
24
-
25
- module_function
26
-
27
- # A condition builder.
28
- # @param condition1 [Proc, Method, #===]
29
- # @param condition2 [Proc, Method, #===]
30
- # @param conditions [Array<Proc, Method, #===>]
31
- # @return [Proc]
32
- # this lambda return true if match all conditions
33
- def AND(condition1, condition2, *conditions)
34
- ->v {
35
- [condition1, condition2, *conditions].all? { |condition| condition === v }
36
- }
37
- end
38
-
39
- # A condition builder.
40
- # @param condition1 [Proc, Method, #===]
41
- # @param condition2 [Proc, Method, #===]
42
- # @param conditions [Array<Proc, Method, #===>]
43
- # @return [Proc]
44
- def NAND(condition1, condition2, *conditions)
45
- NOT(AND(condition1, condition2, *conditions))
46
- end
47
-
48
- # A condition builder.
49
- # @param condition1 [Proc, Method, #===]
50
- # @param condition2 [Proc, Method, #===]
51
- # @param conditions [Array<Proc, Method, #===>]
52
- # @return [Proc]
53
- # this lambda return true if match a any condition
54
- def OR(condition1, condition2, *conditions)
55
- ->v {
56
- [condition1, condition2, *conditions].any? { |condition| condition === v }
57
- }
58
- end
59
-
60
- # A condition builder.
61
- # @param condition1 [Proc, Method, #===]
62
- # @param condition2 [Proc, Method, #===]
63
- # @param conditions [Array<Proc, Method, #===>]
64
- # @return [Proc]
65
- def NOR(condition1, condition2, *conditions)
66
- NOT(OR(condition1, condition2, *conditions))
67
- end
68
-
69
- # A condition builder.
70
- # @param condition1 [Proc, Method, #===]
71
- # @param condition2 [Proc, Method, #===]
72
- # @param conditions [Array<Proc, Method, #===>]
73
- # @return [Proc]
74
- def XOR(condition1, condition2, *conditions)
75
- ->v {
76
- [condition1, condition2, *conditions].one? { |condition| condition === v }
77
- }
78
- end
79
-
80
- # A condition builder.
81
- # @param condition1 [Proc, Method, #===]
82
- # @param condition2 [Proc, Method, #===]
83
- # @param conditions [Array<Proc, Method, #===>]
84
- # @return [Proc]
85
- def XNOR(condition1, condition2, *conditions)
86
- NOT(XOR(condition1, condition2, *conditions))
87
- end
88
-
89
- # A condition builder.
90
- # @param condition [Proc, Method, #===]
91
- # @return [Proc] A condition invert the original condition.
92
- def NOT(condition)
93
- unless Eqq.conditionable?(condition)
94
- raise TypeError, 'wrong object for condition'
95
- end
96
-
97
- ->v { !(condition === v) }
98
- end
99
-
100
- # A condition builder.
101
- # @param obj [#==]
102
- # @return [Proc]
103
- # this lambda return true if a argument match under #== method
104
- def EQ(obj)
105
- ->v { obj == v }
106
- end
7
+ require_relative 'eqq/buildable'
8
+ require_relative 'eqq/version'
107
9
 
108
- # A condition builder.
109
- # @param obj [#equal?]
110
- # @return [Proc]
111
- # this lambda return true if a argument match under #equal? method
112
- def SAME(obj)
113
- ->v { obj.equal?(v) }
114
- end
10
+ module Eqq
11
+ extend Buildable
115
12
 
116
- # A condition builder.
117
- # @param message1 [Symbol, String]
118
- # @param messages [Array<Symbol, String>]
119
- # @return [Proc]
120
- # this lambda return true if a argument respond to all messages
121
- def CAN(message1, *messages)
122
- messages = [message1, *messages].map(&:to_sym)
13
+ class Error < StandardError; end
14
+ class InvalidProductError < Error; end
123
15
 
124
- ->v {
125
- messages.all? { |message| v.respond_to?(message) }
126
- }
16
+ class DSLScope
17
+ include Buildable
127
18
  end
128
19
 
129
- # A condition builder.
130
- # @param condition1 [Proc, Method, #===]
131
- # @param conditions [Array<Proc, Method, #===>]
132
- # @return [Proc]
133
- # this lambda return true
134
- # if face no exception when a argument checking under all conditions
135
- def QUIET(condition1, *conditions)
136
- conditions = [condition1, *conditions]
137
- unless conditions.all? { |c| Eqq.conditionable?(c) }
138
- raise TypeError, 'wrong object for condition'
139
- end
140
-
141
- ->v {
142
- conditions.all? { |condition|
20
+ class << self
21
+ def valid?(object)
22
+ case object
23
+ when Proc, Method
24
+ object.arity == 1
25
+ else
143
26
  begin
144
- condition === v
145
- rescue Exception
27
+ object.respond_to?(:===)
28
+ rescue NoMethodError
146
29
  false
147
- else
148
- true
149
30
  end
150
- }
151
- }
152
- end
153
-
154
- # A condition builder.
155
- # @param exception [Exception]
156
- # @param exceptions [Array<Exception>]
157
- # @return [Proc]
158
- # this lambda return true
159
- # if catch any kindly exceptions when a argument checking in a block parameter
160
- def RESCUE(exception, *exceptions, &condition)
161
- exceptions = [exception, *exceptions]
162
- raise ArgumentError unless Eqq.conditionable?(condition)
163
- raise ArgumentError unless exceptions.all?(Exception)
164
-
165
- ->v {
166
- begin
167
- condition.call(v)
168
- false
169
- rescue *exceptions
170
- true
171
- rescue Exception
172
- false
173
- end
174
- }
175
- end
176
-
177
- # A condition builder.
178
- # @param exception [Exception]
179
- # @return [Proc]
180
- # this lambda return true
181
- # if catch a specific exception when a argument checking in a block parameter
182
- def CATCH(exception, &condition)
183
- raise ArgumentError unless Eqq.conditionable?(condition)
184
- raise ArgumentError unless exceptions.all?(Exception)
185
-
186
- ->v {
187
- begin
188
- condition.call(v)
189
- rescue Exception => err
190
- err.instance_of?(exception)
191
- else
192
- false
193
31
  end
194
- }
195
- end
196
-
197
- # A condition builder.
198
- # @param condition1 [Proc, Method, #===]
199
- # @param condition2 [Proc, Method, #===]
200
- # @param conditions [Array<Proc, Method, #===>]
201
- # @return [Proc]
202
- # this lambda return true
203
- # if all included objects match all conditions
204
- def ALL(condition1, condition2, *conditions)
205
- condition = Eqq.AND(condition1, condition2, *conditions)
206
-
207
- ->list {
208
- enum = (
209
- case
210
- when list.respond_to?(:each_value)
211
- list.each_value
212
- when list.respond_to?(:all?)
213
- list
214
- when list.respond_to?(:each)
215
- list.each
216
- else
217
- return false
218
- end
219
- )
220
-
221
- enum.all?(condition)
222
- }
223
- end
224
-
225
- def ANYTHING
226
- # BasicObject.=== always passing
227
- BasicObject
228
- end
32
+ end
229
33
 
230
- BOOLEAN = OR(SAME(true), SAME(false))
34
+ def define(&block)
35
+ pattern = DSLScope.new.instance_exec(&block)
36
+ raise InvalidProductError unless valid?(pattern)
231
37
 
232
- # A getter for a useful condition.
233
- # @return [BOOLEAN] "true or false"
234
- def BOOLEAN
235
- BOOLEAN
38
+ pattern
39
+ end
236
40
  end
237
41
  end
238
-
239
- require_relative 'eqq/version'
@@ -0,0 +1,172 @@
1
+ # coding: us-ascii
2
+ # frozen_string_literal: true
3
+
4
+ module Eqq
5
+ module Buildable
6
+ extend self
7
+
8
+ # @param pattern1 [Proc, Method, #===]
9
+ # @param pattern2 [Proc, Method, #===]
10
+ # @param patterns [Array<Proc, Method, #===>]
11
+ # @return [Proc]
12
+ # this lambda return true if match all patterns
13
+ def AND(pattern1, pattern2, *patterns)
14
+ ->v {
15
+ [pattern1, pattern2, *patterns].all? { |pattern| pattern === v }
16
+ }
17
+ end
18
+
19
+ # @param pattern1 [Proc, Method, #===]
20
+ # @param pattern2 [Proc, Method, #===]
21
+ # @param patterns [Array<Proc, Method, #===>]
22
+ # @return [Proc]
23
+ def NAND(pattern1, pattern2, *patterns)
24
+ NOT(AND(pattern1, pattern2, *patterns))
25
+ end
26
+
27
+ # @param pattern1 [Proc, Method, #===]
28
+ # @param pattern2 [Proc, Method, #===]
29
+ # @param patterns [Array<Proc, Method, #===>]
30
+ # @return [Proc]
31
+ # this lambda return true if match a any pattern
32
+ def OR(pattern1, pattern2, *patterns)
33
+ ->v {
34
+ [pattern1, pattern2, *patterns].any? { |pattern| pattern === v }
35
+ }
36
+ end
37
+
38
+ # @param pattern1 [Proc, Method, #===]
39
+ # @param pattern2 [Proc, Method, #===]
40
+ # @param patterns [Array<Proc, Method, #===>]
41
+ # @return [Proc]
42
+ def NOR(pattern1, pattern2, *patterns)
43
+ NOT(OR(pattern1, pattern2, *patterns))
44
+ end
45
+
46
+ # @param pattern1 [Proc, Method, #===]
47
+ # @param pattern2 [Proc, Method, #===]
48
+ # @param patterns [Array<Proc, Method, #===>]
49
+ # @return [Proc]
50
+ def XOR(pattern1, pattern2, *patterns)
51
+ ->v {
52
+ [pattern1, pattern2, *patterns].one? { |pattern| pattern === v }
53
+ }
54
+ end
55
+
56
+ # @param pattern1 [Proc, Method, #===]
57
+ # @param pattern2 [Proc, Method, #===]
58
+ # @param patterns [Array<Proc, Method, #===>]
59
+ # @return [Proc]
60
+ def XNOR(pattern1, pattern2, *patterns)
61
+ NOT(XOR(pattern1, pattern2, *patterns))
62
+ end
63
+
64
+ # @param pattern [Proc, Method, #===]
65
+ # @return [Proc]
66
+ def NOT(pattern)
67
+ raise ArgumentError, 'wrong object for pattern' unless Eqq.valid?(pattern)
68
+
69
+ ->v { !(pattern === v) }
70
+ end
71
+
72
+ # A pattern builder.
73
+ # @param obj [#==]
74
+ # @return [Proc]
75
+ def EQ(obj)
76
+ ->v { obj == v }
77
+ end
78
+
79
+ # @param obj [#equal?]
80
+ # @return [Proc]
81
+ def SAME(obj)
82
+ ->v { obj.equal?(v) }
83
+ end
84
+
85
+ # @param message1 [Symbol, String]
86
+ # @param messages [Array<Symbol, String>]
87
+ # @return [Proc]
88
+ def CAN(message1, *messages)
89
+ messages = begin
90
+ [message1, *messages].map(&:to_sym)
91
+ rescue NoMethodError
92
+ raise ArgumentError
93
+ end
94
+
95
+ ->v {
96
+ messages.all? { |message|
97
+ begin
98
+ v.respond_to?(message)
99
+ rescue NoMethodError
100
+ false
101
+ end
102
+ }
103
+ }
104
+ end
105
+
106
+ # @param pattern1 [Proc, Method, #===]
107
+ # @param patterns [Array<Proc, Method, #===>]
108
+ # @return [Proc]
109
+ def QUIET(pattern1, *patterns)
110
+ patterns = [pattern1, *patterns]
111
+ unless patterns.all? { |pattern| Eqq.valid?(pattern) }
112
+ raise ArgumentError, 'wrong object for pattern'
113
+ end
114
+
115
+ ->v {
116
+ patterns.all? { |pattern|
117
+ begin
118
+ pattern === v
119
+ rescue Exception
120
+ false
121
+ else
122
+ true
123
+ end
124
+ }
125
+ }
126
+ end
127
+
128
+ # @param mod [Module]
129
+ # @param pattern [Proc, Method, #===]
130
+ # @return [Proc]
131
+ def RESCUE(mod, pattern)
132
+ raise ArgumentError unless Eqq.valid?(pattern)
133
+ raise ArgumentError unless Module === mod
134
+
135
+ ->v {
136
+ begin
137
+ pattern === v
138
+ false
139
+ rescue mod
140
+ true
141
+ rescue Exception
142
+ false
143
+ end
144
+ }
145
+ end
146
+
147
+ # @param name [Symbol, #to_sym]
148
+ # @param pattern [Proc, Method, #===]
149
+ # @return [Proc]
150
+ def SEND(name, pattern)
151
+ raise InvalidProductError unless Eqq.valid?(pattern)
152
+
153
+ ->v {
154
+ v.__send__(name, pattern)
155
+ }
156
+ end
157
+
158
+ # @return [BasicObject]
159
+ def ANYTHING
160
+ # BasicObject.=== always passing
161
+ BasicObject
162
+ end
163
+
164
+ BOOLEAN = OR(SAME(true), SAME(false))
165
+ private_constant :BOOLEAN
166
+
167
+ # @return [BOOLEAN]
168
+ def BOOLEAN
169
+ BOOLEAN
170
+ end
171
+ end
172
+ end
data/lib/eqq/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Eqq
5
- VERSION = '0.0.1'
5
+ VERSION = '0.0.2'
6
6
  end
data/sig/eqq.rbs ADDED
@@ -0,0 +1,49 @@
1
+ module Eqq
2
+ interface _Patternable
3
+ def ===: (untyped object) -> bool
4
+ end
5
+
6
+ interface _ToSym
7
+ def to_sym: -> Symbol
8
+ end
9
+
10
+ module Buildable
11
+ # A pribate constant. Should not be used in your code.
12
+ BOOLEAN: ^(untyped object) -> bool
13
+
14
+ extend Buildable
15
+ def OR: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
16
+ def AND: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
17
+ def NAND: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
18
+ def NOR: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
19
+ def XOR: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
20
+ def XNOR: (_Patternable, _Patternable, *_Patternable) -> ^(untyped object) -> bool
21
+ def NOT: (_Patternable) -> ^(untyped object) -> bool
22
+ def EQ: (untyped object) -> ^(untyped object) -> bool
23
+ def SAME: (untyped object) -> ^(untyped object) -> bool
24
+ def CAN: (_ToSym, *_ToSym) -> ^(untyped object) -> bool
25
+ def RESCUE: (Module, _Patternable) -> ^(untyped object) -> bool
26
+ def QUIET: (_Patternable, *_Patternable) -> ^(untyped object) -> bool
27
+ def SEND: (Symbol | String name, _Patternable) -> ^(untyped object) -> bool
28
+ def ANYTHING: () -> BasicObject
29
+ def BOOLEAN: () -> ^(untyped object) -> bool
30
+ end
31
+
32
+ extend Buildable
33
+
34
+ class Error < StandardError
35
+ end
36
+
37
+ class InvalidProductError < Error
38
+ end
39
+
40
+ # A pribate API. Should not be used in your code.
41
+ class DSLScope
42
+ include Buildable
43
+ end
44
+
45
+ VERSION: String
46
+
47
+ def self.valid?: (untyped object) -> bool
48
+ def self.define: { () -> _Patternable } -> _Patternable
49
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eqq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenichi Kamiya
@@ -9,221 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-06-01 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: test-unit
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 3.4.1
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '4.0'
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 3.4.1
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '4.0'
33
- - !ruby/object:Gem::Dependency
34
- name: irb
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 1.3.5
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '2.0'
43
- type: :development
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 1.3.5
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '2.0'
53
- - !ruby/object:Gem::Dependency
54
- name: irb-power_assert
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - '='
58
- - !ruby/object:Gem::Version
59
- version: 0.0.2
60
- type: :development
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - '='
65
- - !ruby/object:Gem::Version
66
- version: 0.0.2
67
- - !ruby/object:Gem::Dependency
68
- name: warning
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: 1.2.0
74
- - - "<"
75
- - !ruby/object:Gem::Version
76
- version: '2.0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: 1.2.0
84
- - - "<"
85
- - !ruby/object:Gem::Version
86
- version: '2.0'
87
- - !ruby/object:Gem::Dependency
88
- name: rake
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- version: 13.0.3
94
- - - "<"
95
- - !ruby/object:Gem::Version
96
- version: '20.0'
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 13.0.3
104
- - - "<"
105
- - !ruby/object:Gem::Version
106
- version: '20.0'
107
- - !ruby/object:Gem::Dependency
108
- name: yard
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 0.9.26
114
- - - "<"
115
- - !ruby/object:Gem::Version
116
- version: '2'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: 0.9.26
124
- - - "<"
125
- - !ruby/object:Gem::Version
126
- version: '2'
127
- - !ruby/object:Gem::Dependency
128
- name: rubocop
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- version: 1.15.0
134
- - - "<"
135
- - !ruby/object:Gem::Version
136
- version: 1.16.0
137
- type: :development
138
- prerelease: false
139
- version_requirements: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: 1.15.0
144
- - - "<"
145
- - !ruby/object:Gem::Version
146
- version: 1.16.0
147
- - !ruby/object:Gem::Dependency
148
- name: rubocop-rake
149
- requirement: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: 0.5.1
154
- - - "<"
155
- - !ruby/object:Gem::Version
156
- version: 0.6.0
157
- type: :development
158
- prerelease: false
159
- version_requirements: !ruby/object:Gem::Requirement
160
- requirements:
161
- - - ">="
162
- - !ruby/object:Gem::Version
163
- version: 0.5.1
164
- - - "<"
165
- - !ruby/object:Gem::Version
166
- version: 0.6.0
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop-performance
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: 1.11.3
174
- - - "<"
175
- - !ruby/object:Gem::Version
176
- version: 1.12.0
177
- type: :development
178
- prerelease: false
179
- version_requirements: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- version: 1.11.3
184
- - - "<"
185
- - !ruby/object:Gem::Version
186
- version: 1.12.0
187
- - !ruby/object:Gem::Dependency
188
- name: rubocop-rubycw
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: 0.1.6
194
- - - "<"
195
- - !ruby/object:Gem::Version
196
- version: 0.2.0
197
- type: :development
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - ">="
202
- - !ruby/object:Gem::Version
203
- version: 0.1.6
204
- - - "<"
205
- - !ruby/object:Gem::Version
206
- version: 0.2.0
207
- - !ruby/object:Gem::Dependency
208
- name: rubocop-md
209
- requirement: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - ">="
212
- - !ruby/object:Gem::Version
213
- version: 1.0.1
214
- - - "<"
215
- - !ruby/object:Gem::Version
216
- version: 2.0.0
217
- type: :development
218
- prerelease: false
219
- version_requirements: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - ">="
222
- - !ruby/object:Gem::Version
223
- version: 1.0.1
224
- - - "<"
225
- - !ruby/object:Gem::Version
226
- version: 2.0.0
12
+ dependencies: []
227
13
  description: " [4.2, 42, 42.0, 420].grep(Eqq.AND(Integer, 20..50)) #=> [42]\n"
228
14
  email:
229
15
  - kachick1+ruby@gmail.com
@@ -234,7 +20,9 @@ files:
234
20
  - MIT-LICENSE.txt
235
21
  - README.md
236
22
  - lib/eqq.rb
23
+ - lib/eqq/buildable.rb
237
24
  - lib/eqq/version.rb
25
+ - sig/eqq.rbs
238
26
  homepage: https://github.com/kachick/eqq
239
27
  licenses:
240
28
  - MIT
@@ -251,7 +39,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
251
39
  requirements:
252
40
  - - ">="
253
41
  - !ruby/object:Gem::Version
254
- version: 2.5.0
42
+ version: 2.6.0
255
43
  required_rubygems_version: !ruby/object:Gem::Requirement
256
44
  requirements:
257
45
  - - ">="