is-enum 0.8.2 → 0.8.4

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/is-enum.rb +19 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd8fd261e395a103ac0b4379166fca49f757425b322dac840c17aae8b63e32e7
4
- data.tar.gz: 55d481d1cfb05cfe9a01295702ef928cd710a4e04c2301611e7a3ce6b4ec9f03
3
+ metadata.gz: 7815ad636e70cbd191cb03d9f6977566eee7facc449e1f0e080eab20ffb68769
4
+ data.tar.gz: 53a6d579aba8d3cb03f248ce15ea050848da0a783e88bc89e671094ac711dcdd
5
5
  SHA512:
6
- metadata.gz: 5768f8d91e9b3fb1241a16a87543413decb24b202e923df9469cdd84de5140ff35d924396efd101cb2e9eec8bb851b5368abbb805ab587f770be9983c37e8ab8
7
- data.tar.gz: b302d234eb6fea29917264b96cafd52422962eecb9d95d6d62ef170b1cef59000f053b0e05782f32ab915c0ade506d3285888f68e5fa521cec661140e6cd15fa
6
+ metadata.gz: 8d57ce0b88d2c56f8114619891e807f57eeb9d7d27ef76f5fba1e8e4c49a0ea400fd0982bf7afe49023b088eff13d0aaa6e384464d6ac45d4f6b02641a363e37
7
+ data.tar.gz: 8767e34a653844422d5ec68fc5b347bf51a78fd8aadb1d1af07bb681a70b247bce6fbd86b2d4621f0265b31d13e9cdb7838d22a0de71cb16d66d158749efc7c3
data/lib/is-enum.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'set'
4
+
3
5
  module IS; end
4
6
 
5
7
  class IS::Enum
@@ -46,6 +48,23 @@ class IS::Enum
46
48
  return val
47
49
  end
48
50
 
51
+ def from value
52
+ case value
53
+ when nil
54
+ nil
55
+ when self
56
+ value
57
+ when Range
58
+ Range::new from(value.begin), from(value.end), value.exclude_end?
59
+ when Set
60
+ Set[*value.map { |v| from(v) }]
61
+ when Enumerable
62
+ value.map { |v| from(v) }
63
+ else
64
+ raise ArgumentError, "Invalid value of #{ self }: #{ value.inspect }", caller_locations
65
+ end
66
+ end
67
+
49
68
  def each
50
69
  return to_enum(__method__) unless block_given?
51
70
  @values.values.sort_by { |v| v.order_no }.each { |v| yield v }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: is-enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Shikhalev