bytemapper 1.0.24 → 1.0.25

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: ea6f9b415c3147f7af5584a41f5f6c49dbe68fd7137771e6930bba37c8164400
4
- data.tar.gz: c40ea7b989e39da462f13a2a9e43730eb8efdfdf5e5b4053d0c4d9ffd1eecd43
3
+ metadata.gz: dce11df6e4ad42a1c8a81853d2e9188fd9a3caaa02692ef12a58dedcae33e296
4
+ data.tar.gz: f95e339d989e6346651cc45d07ca0ae1ffd55e2b0a8bd0071b0014b28aa9868c
5
5
  SHA512:
6
- metadata.gz: dfbbbd391b56398a95d77bb2e0777241684f4621d0d16a782af0dde25c10afa186817839e01ef659c15aa7b1a46ed7aab0c6a5811c08e8cc15b51fef0ec8ff41
7
- data.tar.gz: 8c6e57cdf80bb6b921444a5b4d48ee56b682644534d411e9079fc7551018ed692415caa72066588d90c7966816bdc3ad7ee89600beca782afcace6656932f14a
6
+ metadata.gz: 56c5919a1f298fe359eb3931e941965ac43d003ddf2691c2b93394ca8b0dbdba88ef9b64c55cdda5d0902ac148776bfcc6f6aa7c45d43d6320d5a5f028c0cbfd
7
+ data.tar.gz: '0698b1a5cc71653eb4044f920f4e4428244c88a8cc08ec22c72324e9943efdbbf0e1c7ec7da91bd319c61fdd3c4a3f9e9271889098f503fbb4f3ad52f112d03c'
@@ -113,5 +113,21 @@ module Bytemapper
113
113
  def reset(with_basic_types = true)
114
114
  @@registry = Registry.new(with_basic_types)
115
115
  end
116
+
117
+ def reverse_lookup(prefix, value = nil)
118
+ @@rl_cache ||= {}
119
+ prefix = "#{prefix.to_s}_"
120
+ lookup = @@rl_cache[prefix]
121
+
122
+ if lookup.nil?
123
+ labels = names.filter { |n| n.start_with?(prefix) }
124
+ values = labels.map { |l| get(l) }
125
+ lookup = Hash[values.zip(labels)]
126
+ @@rl_cache[prefix] = lookup
127
+ end
128
+
129
+ value.nil? ? lookup : lookup[value]
130
+ end
131
+
116
132
  end
117
133
  end
@@ -17,8 +17,9 @@
17
17
  module Bytemapper
18
18
  require 'bytemapper/flattenable'
19
19
  class Chunk < Hash
20
+ include Nameable
20
21
  include Flattenable
21
- attr_reader :bytes, :shape, :name
22
+ attr_reader :bytes, :shape
22
23
 
23
24
  def initialize(bytes, shape, name)
24
25
  @name = name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bytemapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.24
4
+ version: 1.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jefferson Hudson