large_object_store 1.3.2 → 1.3.3

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
  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