gollum_rails 1.4.3 → 1.4.4

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: f5e3515f14116b1aeb5ed2717b76293cbd1548e7
4
- data.tar.gz: 6de8ad0cee8e27e0d800f2ac323ed1182ae85b7f
3
+ metadata.gz: b87546f15e81ee861f432ab257ab70287196bc7c
4
+ data.tar.gz: 1ad1939ae2859a5a1ce7d7dc6e2d0d5f107d895c
5
5
  SHA512:
6
- metadata.gz: c27bc643db23fdcd0c22847dfc202b32f9215e54fa48e67e48500a9a0b8733b41352bca8d27b064d9501f40aa62e64ff25b53596bee6946cdcf2a6d0a1bae7ff
7
- data.tar.gz: a15689feba2f801ea6f6de6eacd37ebb71833d00c9c075dc19eaa9be66572fb93883af8486cb668edf76b57acaa36f2dd97e5503e6919fef8f12dc96ce0f0e9d
6
+ metadata.gz: cd4863a15684e585c59ed92390b14f65e77edd5c84a3975d876767f98d4c939357f896291281beee631b5d729638de1eefd5789f8eee655a2f14a5d9daaa754a
7
+ data.tar.gz: 60e919e7cd76defb8b20bc9535617f6430537b7279c92f5e60a423d0cb393c807d9b9f080133b967e44f0fbfb1dac9f84f8662ab0cee9545da4a47f07f58fe77
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gollum_rails (1.4.3)
4
+ gollum_rails (1.4.4)
5
5
  activemodel (>= 4.0.0)
6
- gollum-lib (~> 1.0.4)
6
+ gollum-lib (~> 1.0.8)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -35,6 +35,7 @@ GEM
35
35
  arel (4.0.0)
36
36
  atomic (1.1.9)
37
37
  builder (3.1.4)
38
+ charlock_holmes (0.6.9.4)
38
39
  coderay (1.0.9)
39
40
  colorize (0.5.8)
40
41
  coveralls (0.6.4)
@@ -47,20 +48,19 @@ GEM
47
48
  erubis (2.7.0)
48
49
  ffi (1.9.0)
49
50
  formatador (0.2.4)
50
- github-markdown (0.5.3)
51
51
  github-markup (0.7.5)
52
- gollum-lib (1.0.4)
53
- github-markdown (~> 0.5.3)
52
+ gitlab-grit (2.6.0)
53
+ charlock_holmes (~> 0.6.9)
54
+ diff-lcs (~> 1.1)
55
+ mime-types (~> 1.15)
56
+ posix-spawn (~> 0.3.6)
57
+ gollum-lib (1.0.8)
54
58
  github-markup (>= 0.7.5, < 1.0.0)
55
- grit (~> 2.5.0)
59
+ gitlab-grit (~> 2.6.0)
56
60
  nokogiri (~> 1.6.0)
57
61
  pygments.rb (~> 0.5.2)
58
62
  sanitize (~> 2.0.6)
59
- stringex (~> 2.0.5)
60
- grit (2.5.0)
61
- diff-lcs (~> 1.1)
62
- mime-types (~> 1.15)
63
- posix-spawn (~> 0.3.6)
63
+ stringex (~> 2.1.0)
64
64
  guard (1.8.0)
65
65
  formatador (>= 0.2.4)
66
66
  listen (>= 1.0.0)
@@ -82,7 +82,7 @@ GEM
82
82
  treetop (~> 1.4.8)
83
83
  method_source (0.8.1)
84
84
  mime-types (1.23)
85
- mini_portile (0.5.1)
85
+ mini_portile (0.5.2)
86
86
  minitest (4.7.5)
87
87
  multi_json (1.7.3)
88
88
  nokogiri (1.6.0)
@@ -145,7 +145,7 @@ GEM
145
145
  actionpack (>= 3.0)
146
146
  activesupport (>= 3.0)
147
147
  sprockets (~> 2.8)
148
- stringex (2.0.6)
148
+ stringex (2.1.0)
149
149
  thor (0.18.1)
150
150
  thread_safe (0.1.0)
151
151
  atomic
data/HISTORY.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 1.4.4 31th October 2013
2
+ * Removed Monkey patch for Grit
3
+ * Upgraded Gollum lib version
4
+ * Fixed specs for new gollum behavior
5
+ * Removed String freedom patches
6
+ *
7
+
1
8
  # 1.4.3 1th September 2013
2
9
  * Display the current pages version (short OR long)
3
10
  * Display if the page is a sub page
data/README.md CHANGED
@@ -4,7 +4,7 @@ Gollum for Rails
4
4
  [![Dependency Status](https://gemnasium.com/nirnanaaa/gollum_rails.png)](https://gemnasium.com/nirnanaaa/gollum_rails)
5
5
  [![Gem Version](https://badge.fury.io/rb/gollum_rails.png)](http://badge.fury.io/rb/gollum_rails)
6
6
  [![Coverage Status](https://coveralls.io/repos/nirnanaaa/gollum_rails/badge.png?branch=master)](https://coveralls.io/r/nirnanaaa/gollum_rails)
7
-
7
+ [![Code Climate](https://codeclimate.com/github/nirnanaaa/gollum_rails.png)](https://codeclimate.com/github/nirnanaaa/gollum_rails)
8
8
 
9
9
  gollum_rails combines the git-powered wiki software gollum with the extreme popular webframework rails.
10
10
  It improves the lightweight "gollum" experience which is quite awesome.
@@ -17,6 +17,10 @@ with gollum_rails you can:
17
17
  * Use own preprocession e.g. background workers for data procession
18
18
  * Use user authentication e.g. Devise or Authlogic
19
19
 
20
+ For an Editor to use with gollum_rails I personally like the [gollum_editor](https://github.com/samknight/gollum_editor)
21
+
22
+ It provides nearly the same features as the official editor.
23
+
20
24
  ## SYSTEM REQUIREMENTS
21
25
  - Python 2.5+ (2.7.3 recommended)
22
26
  - Ruby 1.9.3+ (2.0.0 recommended)
data/gollum_rails.gemspec CHANGED
@@ -4,13 +4,13 @@ Gem::Specification.new do |s|
4
4
  s.name = 'gollum_rails'
5
5
  s.rubyforge_project = s.name
6
6
 
7
- s.version = '1.4.3'
7
+ s.version = '1.4.4'
8
8
 
9
9
  s.summary = 'Combines Gollum and Rails'
10
10
  s.description= 'include Gollum into Rails with ease'
11
11
 
12
12
  s.add_dependency 'activemodel', '>= 4.0.0'
13
- s.add_dependency 'gollum-lib', '~> 1.0.4'
13
+ s.add_dependency 'gollum-lib', '~> 1.0.8'
14
14
 
15
15
  s.add_development_dependency 'rspec', '~> 2.13.0'
16
16
  s.add_development_dependency 'rr', '~> 1.1.1'
@@ -34,7 +34,6 @@ Gem::Specification.new do |s|
34
34
  README.md
35
35
  Rakefile
36
36
  gollum_rails.gemspec
37
- lib/core_ext/string.rb
38
37
  lib/generators/gollum_rails/install/install_generator.rb
39
38
  lib/generators/gollum_rails/install/templates/gollum_initializer.rb
40
39
  lib/generators/gollum_rails/language/language_generator.rb
@@ -52,7 +51,6 @@ Gem::Specification.new do |s|
52
51
  lib/gollum_rails/adapters/gollum/wiki.rb
53
52
  lib/gollum_rails/page.rb
54
53
  lib/gollum_rails/setup.rb
55
- lib/grit/git-ruby/internal/pack.rb
56
54
  spec/gollum_rails/adapters/activemodel/error_spec.rb
57
55
  spec/gollum_rails/adapters/activemodel/naming_spec.rb
58
56
  spec/gollum_rails/adapters/activemodel/validation_unused.rb
data/lib/gollum_rails.rb CHANGED
@@ -6,9 +6,6 @@ require 'rubygems'
6
6
  # external
7
7
  require 'gollum-lib'
8
8
 
9
- # patches
10
- require 'grit/git-ruby/internal/pack'
11
- require 'core_ext/string'
12
9
 
13
10
  # GollumRails is a RubyGem for extending Rails and the Gollum wiki powered by github
14
11
  # It has the ability to combine the benefits from a git powered wiki with Rails.
@@ -23,7 +20,7 @@ module GollumRails
23
20
  autoload :Setup, 'gollum_rails/setup'
24
21
 
25
22
  # GollumRails version string
26
- VERSION = '1.4.3'
23
+ VERSION = '1.4.4'
27
24
 
28
25
  # Simplified error
29
26
  class Error < StandardError; end
@@ -59,7 +59,7 @@ describe "Gollum Page" do
59
59
  end
60
60
  it "has the formatted data" do
61
61
  @rr.save
62
- @rr.html_data.should == '<p>content data</p>'
62
+ @rr.html_data.should == 'content data'
63
63
  end
64
64
  it "was last changed by me" do
65
65
  @rr.save
@@ -124,13 +124,6 @@ describe "Gollum Page" do
124
124
  end
125
125
  end
126
126
 
127
-
128
- 100.times do
129
- it "should test the preview" do
130
- rr = RailsModel.new :content => "# content", :name => "somepage"
131
- rr.preview.should include("<h1>content<a class=\"anchor\" id=\"content\" href=\"#content\"></a></h1>")
132
- end
133
- end
134
127
 
135
128
  it "should test exception methods" do
136
129
  RailsModel.create @call
@@ -338,7 +331,7 @@ describe "Gollum Page" do
338
331
  res.update_attributes("content",nil,:markdown, @commit)
339
332
  diff = res.compare_commits(res.history.first)
340
333
  expect(diff).to be_a String
341
- expect(diff).to match(/diff/)
334
+ expect(diff).to match(/---/)
342
335
  res.delete
343
336
  end
344
337
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gollum_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Kasper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-02 00:00:00.000000000 Z
11
+ date: 2013-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.4
33
+ version: 1.0.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.4
40
+ version: 1.0.8
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +94,6 @@ files:
94
94
  - README.md
95
95
  - Rakefile
96
96
  - gollum_rails.gemspec
97
- - lib/core_ext/string.rb
98
97
  - lib/generators/gollum_rails/install/install_generator.rb
99
98
  - lib/generators/gollum_rails/install/templates/gollum_initializer.rb
100
99
  - lib/generators/gollum_rails/language/language_generator.rb
@@ -112,7 +111,6 @@ files:
112
111
  - lib/gollum_rails/adapters/gollum/wiki.rb
113
112
  - lib/gollum_rails/page.rb
114
113
  - lib/gollum_rails/setup.rb
115
- - lib/grit/git-ruby/internal/pack.rb
116
114
  - spec/gollum_rails/adapters/activemodel/error_spec.rb
117
115
  - spec/gollum_rails/adapters/activemodel/naming_spec.rb
118
116
  - spec/gollum_rails/adapters/activemodel/validation_unused.rb
@@ -150,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
148
  version: '0'
151
149
  requirements: []
152
150
  rubyforge_project: gollum_rails
153
- rubygems_version: 2.0.5
151
+ rubygems_version: 2.0.6
154
152
  signing_key:
155
153
  specification_version: 4
156
154
  summary: Combines Gollum and Rails
@@ -1,3 +0,0 @@
1
- class String
2
- def getord(offset); self[offset].ord; end
3
- end
@@ -1,397 +0,0 @@
1
- #
2
- # converted from the gitrb project
3
- #
4
- # authors:
5
- # Matthias Lederhofer <matled@gmx.net>
6
- # Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
7
- # Scott Chacon <schacon@gmail.com>
8
- #
9
- # provides native ruby access to git objects and pack files
10
- #
11
-
12
- require 'zlib'
13
- require 'grit/git-ruby/internal/raw_object'
14
- require 'grit/git-ruby/internal/file_window'
15
-
16
- PACK_IDX_SIGNATURE = [0xFF, 0x74, 0x4F, 0x63]
17
-
18
- module Grit
19
- module GitRuby
20
- module Internal
21
- class PackFormatError < StandardError
22
- end
23
-
24
- class PackStorage
25
- OBJ_OFS_DELTA = 6
26
- OBJ_REF_DELTA = 7
27
-
28
- FanOutCount = 256
29
- SHA1Size = 20
30
- IdxOffsetSize = 4
31
- OffsetSize = 4
32
- ExtendedOffsetSize = 8
33
- CrcSize = 4
34
- OffsetStart = FanOutCount * IdxOffsetSize
35
- SHA1Start = OffsetStart + OffsetSize
36
- EntrySize = OffsetSize + SHA1Size
37
- EntrySizeV2 = SHA1Size + CrcSize + OffsetSize
38
-
39
- def initialize(file)
40
- if file =~ /\.idx$/
41
- file = file[0...-3] + 'pack'
42
- end
43
- @name = file
44
- @cache = {}
45
- init_pack
46
- end
47
-
48
- def with_idx(index_file = nil)
49
- index_file ||= @name[0...-4] + 'idx'
50
-
51
- begin
52
- idxfile = File.open(index_file, 'rb')
53
- rescue Errno::ENOENT => boom
54
- # file went away. bail out without yielding.
55
- return
56
- end
57
-
58
- # read header
59
- sig = idxfile.read(4).unpack("C*")
60
- ver = idxfile.read(4).unpack("N")[0]
61
-
62
- if sig == PACK_IDX_SIGNATURE
63
- if(ver != 2)
64
- raise PackFormatError, "pack #@name has unknown pack file version #{ver}"
65
- end
66
- @version = 2
67
- else
68
- @version = 1
69
- end
70
-
71
- idx = FileWindow.new(idxfile, @version)
72
- yield idx
73
- idx.unmap
74
- ensure
75
- idxfile.close if idxfile
76
- end
77
-
78
- def with_packfile
79
- begin
80
- packfile = File.open(@name, 'rb')
81
- rescue Errno::ENOENT
82
- # file went away. bail out without yielding.
83
- return
84
- end
85
- yield packfile
86
- ensure
87
- packfile.close if packfile
88
- end
89
-
90
- def cache_objects
91
- @cache = {}
92
- with_packfile do |packfile|
93
- each_entry do |sha, offset|
94
- data, type = unpack_object(packfile, offset, {:caching => true})
95
- if data
96
- @cache[sha] = RawObject.new(OBJ_TYPES[type], data)
97
- end
98
- end
99
- end
100
- end
101
-
102
- def name
103
- @name
104
- end
105
-
106
- def close
107
- # shouldnt be anything open now
108
- end
109
-
110
- # given an index file, list out the shas that it's packfile contains
111
- def get_shas
112
- shas = []
113
- each_sha1 { |sha| shas << sha.unpack("H*")[0] }
114
- shas
115
- end
116
-
117
- def [](sha1)
118
- if obj = @cache[sha1]
119
- return obj
120
- end
121
-
122
- offset = find_object(sha1)
123
- return nil if !offset
124
- @cache[sha1] = obj = parse_object(offset)
125
- return obj
126
- end
127
-
128
- def init_pack
129
- with_idx do |idx|
130
- @offsets = [0]
131
- FanOutCount.times do |i|
132
- pos = idx[i * IdxOffsetSize,IdxOffsetSize].unpack('N')[0]
133
- if pos < @offsets[i]
134
- raise PackFormatError, "pack #@name has discontinuous index #{i}"
135
- end
136
- @offsets << pos
137
- end
138
- @size = @offsets[-1]
139
- end
140
- end
141
-
142
- def each_entry
143
- with_idx do |idx|
144
- if @version == 2
145
- data = read_data_v2(idx)
146
- data.each do |sha1, crc, offset|
147
- yield sha1, offset
148
- end
149
- else
150
- pos = OffsetStart
151
- @size.times do
152
- offset = idx[pos,OffsetSize].unpack('N')[0]
153
- sha1 = idx[pos+OffsetSize,SHA1Size]
154
- pos += EntrySize
155
- yield sha1, offset
156
- end
157
- end
158
- end
159
- end
160
-
161
- def read_data_v2(idx)
162
- data = []
163
- pos = OffsetStart
164
- @size.times do |i|
165
- data[i] = [idx[pos,SHA1Size], 0, 0]
166
- pos += SHA1Size
167
- end
168
- @size.times do |i|
169
- crc = idx[pos,CrcSize]
170
- data[i][1] = crc
171
- pos += CrcSize
172
- end
173
- @size.times do |i|
174
- offset = idx[pos,OffsetSize].unpack('N')[0]
175
- data[i][2] = offset
176
- pos += OffsetSize
177
- end
178
- data
179
- end
180
- private :read_data_v2
181
-
182
- def each_sha1
183
- with_idx do |idx|
184
- if @version == 2
185
- data = read_data_v2(idx)
186
- data.each do |sha1, crc, offset|
187
- yield sha1
188
- end
189
- else
190
- pos = SHA1Start
191
- @size.times do
192
- sha1 = idx[pos,SHA1Size]
193
- pos += EntrySize
194
- yield sha1
195
- end
196
- end
197
- end
198
- end
199
-
200
- def find_object_in_index(idx, sha1)
201
- slot = sha1.getord(0)
202
- return nil if !slot
203
- first, last = @offsets[slot,2]
204
- while first < last
205
- mid = (first + last) / 2
206
- if @version == 2
207
- midsha1 = idx[OffsetStart + (mid * SHA1Size), SHA1Size]
208
- cmp = midsha1 <=> sha1
209
-
210
- if cmp < 0
211
- first = mid + 1
212
- elsif cmp > 0
213
- last = mid
214
- else
215
- pos = OffsetStart + (@size * (SHA1Size + CrcSize)) + (mid * OffsetSize)
216
- offset = idx[pos, OffsetSize].unpack('N')[0]
217
- if offset & 0x80000000 > 0
218
- offset &= 0x7fffffff
219
- pos = OffsetStart + (@size * (SHA1Size + CrcSize + OffsetSize)) + (offset * ExtendedOffsetSize)
220
- words = idx[pos, ExtendedOffsetSize].unpack('NN')
221
- offset = (words[0] << 32) | words[1]
222
- end
223
- return offset
224
- end
225
- else
226
- midsha1 = idx[SHA1Start + mid * EntrySize,SHA1Size]
227
- cmp = midsha1 <=> sha1
228
-
229
- if cmp < 0
230
- first = mid + 1
231
- elsif cmp > 0
232
- last = mid
233
- else
234
- pos = OffsetStart + mid * EntrySize
235
- offset = idx[pos,OffsetSize].unpack('N')[0]
236
- return offset
237
- end
238
- end
239
- end
240
- nil
241
- end
242
-
243
- def find_object(sha1)
244
- obj = nil
245
- with_idx do |idx|
246
- obj = find_object_in_index(idx, sha1)
247
- end
248
- obj
249
- end
250
- private :find_object
251
-
252
- def parse_object(offset)
253
- obj = nil
254
- with_packfile do |packfile|
255
- data, type = unpack_object(packfile, offset)
256
- obj = RawObject.new(OBJ_TYPES[type], data)
257
- end
258
- obj
259
- end
260
- protected :parse_object
261
-
262
- def unpack_object(packfile, offset, options = {})
263
- obj_offset = offset
264
- packfile.seek(offset)
265
-
266
- c = packfile.read(1).getord(0)
267
- size = c & 0xf
268
- type = (c >> 4) & 7
269
- shift = 4
270
- offset += 1
271
- while c & 0x80 != 0
272
- c = packfile.read(1).getord(0)
273
- size |= ((c & 0x7f) << shift)
274
- shift += 7
275
- offset += 1
276
- end
277
-
278
- return [false, false] if !(type == OBJ_COMMIT || type == OBJ_TREE) && options[:caching]
279
-
280
- case type
281
- when OBJ_OFS_DELTA, OBJ_REF_DELTA
282
- data, type = unpack_deltified(packfile, type, offset, obj_offset, size, options)
283
- #puts type
284
- when OBJ_COMMIT, OBJ_TREE, OBJ_BLOB, OBJ_TAG
285
- data = unpack_compressed(offset, size)
286
- else
287
- raise PackFormatError, "invalid type #{type}"
288
- end
289
- [data, type]
290
- end
291
- private :unpack_object
292
-
293
- def unpack_deltified(packfile, type, offset, obj_offset, size, options = {})
294
- packfile.seek(offset)
295
- data = packfile.read(SHA1Size)
296
-
297
- if type == OBJ_OFS_DELTA
298
- i = 0
299
- c = data.getord(i)
300
- base_offset = c & 0x7f
301
- while c & 0x80 != 0
302
- c = data.getord(i += 1)
303
- base_offset += 1
304
- base_offset <<= 7
305
- base_offset |= c & 0x7f
306
- end
307
- base_offset = obj_offset - base_offset
308
- offset += i + 1
309
- else
310
- base_offset = find_object(data)
311
- offset += SHA1Size
312
- end
313
-
314
- base, type = unpack_object(packfile, base_offset)
315
-
316
- return [false, false] if !(type == OBJ_COMMIT || type == OBJ_TREE) && options[:caching]
317
-
318
- delta = unpack_compressed(offset, size)
319
- [patch_delta(base, delta), type]
320
- end
321
- private :unpack_deltified
322
-
323
- def unpack_compressed(offset, destsize)
324
- outdata = ""
325
- with_packfile do |packfile|
326
- packfile.seek(offset)
327
- zstr = Zlib::Inflate.new
328
- while outdata.size < destsize
329
- indata = packfile.read(4096)
330
- if indata.size == 0
331
- raise PackFormatError, 'error reading pack data'
332
- end
333
- outdata << zstr.inflate(indata)
334
- end
335
- if outdata.size > destsize
336
- raise PackFormatError, 'error reading pack data'
337
- end
338
- zstr.close
339
- end
340
- outdata
341
- end
342
- private :unpack_compressed
343
-
344
- def patch_delta(base, delta)
345
- src_size, pos = patch_delta_header_size(delta, 0)
346
- if src_size != base.size
347
- raise PackFormatError, 'invalid delta data'
348
- end
349
-
350
- dest_size, pos = patch_delta_header_size(delta, pos)
351
- dest = ""
352
- while pos < delta.size
353
- c = delta.getord(pos)
354
- pos += 1
355
- if c & 0x80 != 0
356
- pos -= 1
357
- cp_off = cp_size = 0
358
- cp_off = delta.getord(pos += 1) if c & 0x01 != 0
359
- cp_off |= delta.getord(pos += 1) << 8 if c & 0x02 != 0
360
- cp_off |= delta.getord(pos += 1) << 16 if c & 0x04 != 0
361
- cp_off |= delta.getord(pos += 1) << 24 if c & 0x08 != 0
362
- cp_size = delta.getord(pos += 1) if c & 0x10 != 0
363
- cp_size |= delta.getord(pos += 1) << 8 if c & 0x20 != 0
364
- cp_size |= delta.getord(pos += 1) << 16 if c & 0x40 != 0
365
- cp_size = 0x10000 if cp_size == 0
366
- pos += 1
367
- dest << base[cp_off,cp_size]
368
- elsif c != 0
369
- dest << delta[pos,c]
370
- pos += c
371
- else
372
- raise PackFormatError, 'invalid delta data'
373
- end
374
- end
375
- dest
376
- end
377
- private :patch_delta
378
-
379
- def patch_delta_header_size(delta, pos)
380
- size = 0
381
- shift = 0
382
- begin
383
- c = delta.getord(pos)
384
- if c == nil
385
- raise PackFormatError, 'invalid delta header'
386
- end
387
- pos += 1
388
- size |= (c & 0x7f) << shift
389
- shift += 7
390
- end while c & 0x80 != 0
391
- [size, pos]
392
- end
393
- private :patch_delta_header_size
394
- end
395
- end
396
- end
397
- end