large_object_store 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6d0f7f1ebac87648a577460036f4e3b01565544
4
- data.tar.gz: 1a87e968454bd3360ae875d02004d469dab5f79a
3
+ metadata.gz: fa3354f66bbf118e295bdbb97df3ae3888f597d1
4
+ data.tar.gz: 5e1017c6505b0af50dbe8fdcf7cf6fbc2e834a5b
5
5
  SHA512:
6
- metadata.gz: 86a7f612778fe0f5b63b822b7f7e1302893dc2d607cf1e2ac486ecc87c33f05e9dd5684ca427d4589b7c5c89c5419bcd57c5dc1f294ee92b0db507efe38843d3
7
- data.tar.gz: 2ec27c191e58e87c329dc17871805388c84967ba17e4bea6d36e03d5fb5a13d369062f26c8fb710abaa90a00950f1e61504e1b378e7316737392999744c85639
6
+ metadata.gz: b5822c54bd33b67647f1b313335a1e6dfe19ab2ecc0e93cb8e43efe7fea858f8978aceaa4b3781dde541f902e19e7686e2efb29ffabf67ac851a7c238c154b1b
7
+ data.tar.gz: e7e9a2d1816777a5e06a73b924b1671bd437d1ed721d029e9f1e470d0a2cf11106a9c42b617933ca73fc1f02bc1f7022e605c03511642383f45270368450467e
@@ -12,7 +12,7 @@ module LargeObjectStore
12
12
  NORMAL = 0
13
13
  COMPRESSED = 1
14
14
  RAW = 2
15
- RADIX = 32 # we can store 32 different states
15
+ FLAG_RADIX = 32 # we can store 32 different states
16
16
 
17
17
  def self.wrap(store)
18
18
  RailsWrapper.new(store)
@@ -67,8 +67,14 @@ module LargeObjectStore
67
67
  # use values_at to enforce key order because read_multi doesn't guarantee a return order
68
68
  slices = @store.read_multi(*keys).values_at(*keys)
69
69
  return nil if slices.compact.size != pages
70
- slices.map! { |s| [s.slice!(0, UUID_SIZE), s] }
70
+
71
+ slices = slices.map do |slice|
72
+ s = slice.dup
73
+ [s.slice!(0, UUID_SIZE), s]
74
+ end
75
+
71
76
  return nil unless slices.map(&:first).uniq == [uuid]
77
+
72
78
  slices.map!(&:last).join("")
73
79
  else
74
80
  pages
@@ -112,12 +118,13 @@ module LargeObjectStore
112
118
  value = Zlib::Deflate.deflate(value)
113
119
  end
114
120
 
115
- value.prepend(flag.to_s(RADIX))
121
+ value.prepend(flag.to_s(FLAG_RADIX))
116
122
  end
117
123
 
118
124
  # opposite operations and order of serialize
119
- def deserialize(data)
120
- flag = data.slice!(0, 1).to_i(RADIX)
125
+ def deserialize(raw_data)
126
+ data = raw_data.dup
127
+ flag = data.slice!(0, 1).to_i(FLAG_RADIX)
121
128
  data = Zlib::Inflate.inflate(data) if flag & COMPRESSED == COMPRESSED
122
129
  data = Marshal.load(data) if flag & RAW != RAW
123
130
  data
@@ -1,3 +1,3 @@
1
1
  module LargeObjectStore
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: large_object_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ana Martinez