bytemapper 1.0.24 → 1.0.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bytemapper.rb +16 -0
- data/lib/bytemapper/chunk.rb +2 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce11df6e4ad42a1c8a81853d2e9188fd9a3caaa02692ef12a58dedcae33e296
|
4
|
+
data.tar.gz: f95e339d989e6346651cc45d07ca0ae1ffd55e2b0a8bd0071b0014b28aa9868c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56c5919a1f298fe359eb3931e941965ac43d003ddf2691c2b93394ca8b0dbdba88ef9b64c55cdda5d0902ac148776bfcc6f6aa7c45d43d6320d5a5f028c0cbfd
|
7
|
+
data.tar.gz: '0698b1a5cc71653eb4044f920f4e4428244c88a8cc08ec22c72324e9943efdbbf0e1c7ec7da91bd319c61fdd3c4a3f9e9271889098f503fbb4f3ad52f112d03c'
|
data/lib/bytemapper.rb
CHANGED
@@ -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
|
data/lib/bytemapper/chunk.rb
CHANGED