is-enum 0.8.2 → 0.8.6

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: 8babef200430bd65e413f15f8601f26729db28f6e654f7587ba6d17d60ea5551
4
+ data.tar.gz: d398c4e442245a4a2138b86163fbba328d00eaa8e276c38a7f3c25047fe034f6
5
5
  SHA512:
6
- metadata.gz: 5768f8d91e9b3fb1241a16a87543413decb24b202e923df9469cdd84de5140ff35d924396efd101cb2e9eec8bb851b5368abbb805ab587f770be9983c37e8ab8
7
- data.tar.gz: b302d234eb6fea29917264b96cafd52422962eecb9d95d6d62ef170b1cef59000f053b0e05782f32ab915c0ade506d3285888f68e5fa521cec661140e6cd15fa
6
+ metadata.gz: 003670ac81420c40188095556c6ca5bbd9394b99d1e0f527ec9e226f43eda8ebc69303a0fe11b1a7a935fd5e48a5929d14afb2869b0097cfaa507457c8c04e50
7
+ data.tar.gz: 1320c61ff43a9281dc4821670e93517203d0c02c886c3ee0cf293e31bfc98f970dec3ca528731c42960dc2aa359064fee715fcd37f86029e5e793c951b7a3132
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
+ self[value]
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.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Shikhalev