gollum_rails 1.0.4 → 1.0.5

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.
data/spec/spec_helper.rb CHANGED
@@ -7,37 +7,14 @@ Coveralls.wear!
7
7
  require 'gollum_rails'
8
8
 
9
9
 
10
- require 'benchmark'
11
- RSpec::Matchers.define :take_less_than do |n|
12
- chain :seconds do; end
13
- match do |block|
14
- @elapsed = Benchmark.realtime do
15
- block.call
16
- end
17
- @elapsed <= n
18
- end
19
- end
20
10
 
21
11
  RSpec.configure do |config|
22
12
  config.treat_symbols_as_metadata_keys_with_true_values = true
23
13
 
24
- config.backtrace_clean_patterns = [
25
- /\/lib\d*\/ruby\//,
26
- /bin\//,
27
- /gems/,
28
- /spec\/spec_helper\.rb/,
29
- /lib\/rspec\/(core|expectations|matchers|mocks)/
30
- ]
31
14
  config.before(:each) do
32
15
  GollumRails::Adapters::Gollum::Connector.enabled = true
33
16
  end
34
- config.full_backtrace= false # save the console
35
- config.color_enabled= true # save your eyes
36
- config.formatter = :documentation
37
17
 
38
18
  config.mock_with :rr
39
-
40
- config.before(:each) do
41
- end
42
19
 
43
20
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gollum_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
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-05-28 00:00:00.000000000 Z
11
+ date: 2013-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.13
19
+ version: 3.2.11
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.13
26
+ version: 3.2.11
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gollum-lib
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.0
33
+ version: 1.0.9
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.0
40
+ version: 1.0.9
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.4
61
+ version: 1.1.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.4
68
+ version: 1.1.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
- version: 3.2.13
75
+ version: 3.2.11
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
- version: 3.2.13
82
+ version: 3.2.11
83
83
  description: include Gollum into Rails with ease
84
84
  email: mosny@zyg.li
85
85
  executables: []
@@ -88,12 +88,12 @@ extra_rdoc_files: []
88
88
  files:
89
89
  - Gemfile
90
90
  - Gemfile.lock
91
+ - Guardfile
91
92
  - HISTORY.md
92
93
  - LICENSE
93
94
  - README.md
94
95
  - Rakefile
95
96
  - gollum_rails.gemspec
96
- - lib/core_ext/string.rb
97
97
  - lib/generators/gollum_rails/install/install_generator.rb
98
98
  - lib/generators/gollum_rails/install/templates/gollum_initializer.rb
99
99
  - lib/generators/gollum_rails/language/language_generator.rb
@@ -109,11 +109,8 @@ files:
109
109
  - lib/gollum_rails/adapters/gollum/error.rb
110
110
  - lib/gollum_rails/adapters/gollum/page.rb
111
111
  - lib/gollum_rails/adapters/gollum/wiki.rb
112
- - lib/gollum_rails/modulesDEPRECATED/hash.rb
113
- - lib/gollum_rails/modulesDEPRECATED/loader.rb
114
112
  - lib/gollum_rails/page.rb
115
113
  - lib/gollum_rails/setup.rb
116
- - lib/grit/git-ruby/internal/pack.rb
117
114
  - spec/gollum_rails/adapters/activemodel/error_spec.rb
118
115
  - spec/gollum_rails/adapters/activemodel/naming_spec.rb
119
116
  - spec/gollum_rails/adapters/activemodel/validation_unused.rb
@@ -121,15 +118,12 @@ files:
121
118
  - spec/gollum_rails/adapters/gollum/connector_spec.rb
122
119
  - spec/gollum_rails/adapters/gollum/error_spec.rb
123
120
  - spec/gollum_rails/adapters/gollum/page_spec.rb
124
- - spec/gollum_rails/adapters/gollum/wiki_spec.rb
121
+ - spec/gollum_rails/adapters/gollum/wiki_spec_off.rb
125
122
  - spec/gollum_rails/error_spec.rb
126
- - spec/gollum_rails/modulesDEPRECATED/hash.rb
127
123
  - spec/gollum_rails/page_spec.rb
128
124
  - spec/gollum_rails/respository_spec.rb
129
125
  - spec/gollum_rails/setup_spec.rb
130
126
  - spec/gollum_rails/wiki_spec.rb
131
- - spec/gollum_rails_spec.rb
132
- - spec/spec.opts
133
127
  - spec/spec_helper.rb
134
128
  homepage: https://github.com/nirnanaaa/gollum_rails
135
129
  licenses:
@@ -154,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
148
  version: '0'
155
149
  requirements: []
156
150
  rubyforge_project: gollum_rails
157
- rubygems_version: 2.0.3
151
+ rubygems_version: 2.1.11
158
152
  signing_key:
159
153
  specification_version: 4
160
154
  summary: Combines Gollum and Rails
@@ -1,3 +0,0 @@
1
- class String
2
- def getord(offset); self[offset].ord; end
3
- end
@@ -1,33 +0,0 @@
1
- # See http://ruby-doc.org/core-2.0/Hash.html for further information
2
- #
3
- # Extended methods:
4
- # * object support
5
- # * setter
6
- # * hash setter
7
- # * isset
8
- #
9
- #
10
- # TODO
11
- # * implement is? method
12
- # * improve testing
13
- #
14
- class ::Hash
15
-
16
-
17
- # Public: Converts a method . into an Hash element
18
- #
19
- # Examples
20
- # hash = {a: "b", b: "c", c: "d"}
21
- # hash.a
22
- # # => "b"
23
- # # hash.b
24
- # # => "c"
25
- #
26
- # Returns an instance of Hash if the name is the key of a new hash
27
- def method_missing(name, *args)
28
- return self[name] if key? name
29
- self.each { |k,v| return v if k.to_s.to_sym == name }
30
- super.method_missing name
31
- end
32
-
33
- end
@@ -1,5 +0,0 @@
1
- module GollumRails
2
- ::Dir.glob(::File.expand_path(::File.dirname(__FILE__)) + '/*.rb') do |file|
3
- require file if file != __FILE__
4
- end
5
- 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