shape_of 0.2.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shape_of.rb +2 -43
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9663853638d239d448381e9ab748aeb7813a76b42ed9bd97c423f6d142c95d80
4
- data.tar.gz: b1bdfeb51c08760c7c83519ce640c48d1202d23f3878adb93a2824761525219e
3
+ metadata.gz: 1b4935ae23d9b1478648c71bf1c2fa2f1ef02cd0ca8817ad5ba8b82e4a3e1af1
4
+ data.tar.gz: f67e5ef3f03f1ad27d55d10b2c2400cfed6d216de7d8e35d6b81f5f643d19289
5
5
  SHA512:
6
- metadata.gz: 49cc6be2be276d554b25affe85bd97aca4ff3a134ee2a6334a0d37f35982f34ff28c39d3ce090418d2843b15dbc9d4b5b3bcbe568be69acbed90e31bcfab1ec6
7
- data.tar.gz: cbaa2ed60315ffc111228a0f2093e950ad930a5ecbbba25c471f2d55044d1f14829e040e04d6e6705fcb767519994b1df46b67d0e61ea1046d90a54b87ff3057
6
+ metadata.gz: 14cda0fb707a8a43269f9f19f52994920b2117449c0afcd3911c41706320cb0fb0b7565922ab627ad1be66908de9bf32d120f86db27b0bd2aa2fe086a80adcd9
7
+ data.tar.gz: ae65c4e28e748a9f3e361c51a66a4e84da83d07c7f579cb03758e1bf126b5d858a48a38949a10653704edc97fac6201d4ff1725773ca26e8dbc7da3fb89c76f4
data/lib/shape_of.rb CHANGED
@@ -161,7 +161,7 @@ module ShapeOf
161
161
  if @shape.respond_to? :shape_of?
162
162
  @shape.shape_of? elem
163
163
  elsif @shape.is_a? ::Array
164
- Array[@shape].shape_of? elem
164
+ Array[@shape.first].shape_of? elem
165
165
  elsif @shape.is_a? ::Hash
166
166
  Hash[@shape].shape_of? elem
167
167
  elsif @shape.is_a? Class
@@ -222,7 +222,7 @@ module ShapeOf
222
222
  if @shape[key].respond_to? :shape_of?
223
223
  @shape[key].shape_of? elem
224
224
  elsif @shape[key].is_a? ::Array
225
- Array[@shape[key]].shape_of? elem
225
+ Array[@shape[key].first].shape_of? elem
226
226
  elsif @shape[key].is_a? ::Hash
227
227
  Hash[@shape[key]].shape_of? elem
228
228
  elsif @shape[key].is_a? Class
@@ -316,47 +316,6 @@ module ShapeOf
316
316
  end
317
317
  end
318
318
 
319
- class Regexp < Shape
320
- @internal_class = ::Regexp
321
-
322
- def self.shape_of?(object)
323
- object.instance_of? @internal_class
324
- end
325
-
326
- def self.[](shape)
327
- raise TypeError, "Shape must be #{::Regexp.inspect}, was #{shape.inspect}" unless shape.instance_of? ::Regexp
328
-
329
- Class.new(self) do
330
- @class_name = "#{superclass.name}[#{shape.inspect}]"
331
- @shape = shape
332
-
333
- def self.name
334
- @class_name
335
- end
336
-
337
- def self.to_s
338
- @class_name
339
- end
340
-
341
- def self.inspect
342
- @class_name
343
- end
344
-
345
- def self.shape_of?(object)
346
- unless object.instance_of?(::Regexp) || object.instance_of?(String)
347
- raise TypeError, "expected #{::Regexp.inspect} or #{String.inspect}, was instead #{object.inspect}"
348
- end
349
-
350
- if object.instance_of?(::Regexp)
351
- @shape == object
352
- else # string
353
- @shape.match?(object)
354
- end
355
- end
356
- end
357
- end
358
- end
359
-
360
319
  Numeric = Union[Integer, Float, Rational, Complex].tap do |this|
361
320
  this.instance_variable_set(:@class_name, this.name.sub(/Union.*/, 'Numeric'))
362
321
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shape_of
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Isom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-17 00:00:00.000000000 Z
11
+ date: 2021-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest