gollum_rails 1.4.2 → 1.4.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 +4 -4
- data/Gemfile +2 -1
- data/Gemfile.lock +31 -1
- data/Guardfile +7 -0
- data/HISTORY.md +12 -0
- data/README.md +1 -0
- data/gollum_rails.gemspec +2 -2
- data/lib/gollum_rails.rb +1 -1
- data/lib/gollum_rails/adapters/gollum/page.rb +12 -4
- data/lib/gollum_rails/page.rb +73 -18
- data/spec/gollum_rails/page_spec.rb +197 -39
- data/spec/spec_helper.rb +0 -23
- metadata +3 -3
- data/spec/spec.opts +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5e3515f14116b1aeb5ed2717b76293cbd1548e7
|
4
|
+
data.tar.gz: 6de8ad0cee8e27e0d800f2ac323ed1182ae85b7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c27bc643db23fdcd0c22847dfc202b32f9215e54fa48e67e48500a9a0b8733b41352bca8d27b064d9501f40aa62e64ff25b53596bee6946cdcf2a6d0a1bae7ff
|
7
|
+
data.tar.gz: a15689feba2f801ea6f6de6eacd37ebb71833d00c9c075dc19eaa9be66572fb93883af8486cb668edf76b57acaa36f2dd97e5503e6919fef8f12dc96ce0f0e9d
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gollum_rails (1.4.
|
4
|
+
gollum_rails (1.4.3)
|
5
5
|
activemodel (>= 4.0.0)
|
6
6
|
gollum-lib (~> 1.0.4)
|
7
7
|
|
@@ -35,6 +35,7 @@ GEM
|
|
35
35
|
arel (4.0.0)
|
36
36
|
atomic (1.1.9)
|
37
37
|
builder (3.1.4)
|
38
|
+
coderay (1.0.9)
|
38
39
|
colorize (0.5.8)
|
39
40
|
coveralls (0.6.4)
|
40
41
|
colorize
|
@@ -44,6 +45,8 @@ GEM
|
|
44
45
|
thor
|
45
46
|
diff-lcs (1.2.4)
|
46
47
|
erubis (2.7.0)
|
48
|
+
ffi (1.9.0)
|
49
|
+
formatador (0.2.4)
|
47
50
|
github-markdown (0.5.3)
|
48
51
|
github-markup (0.7.5)
|
49
52
|
gollum-lib (1.0.4)
|
@@ -58,11 +61,26 @@ GEM
|
|
58
61
|
diff-lcs (~> 1.1)
|
59
62
|
mime-types (~> 1.15)
|
60
63
|
posix-spawn (~> 0.3.6)
|
64
|
+
guard (1.8.0)
|
65
|
+
formatador (>= 0.2.4)
|
66
|
+
listen (>= 1.0.0)
|
67
|
+
lumberjack (>= 1.0.2)
|
68
|
+
pry (>= 0.9.10)
|
69
|
+
thor (>= 0.14.6)
|
70
|
+
guard-rspec (3.0.1)
|
71
|
+
guard (>= 1.8)
|
72
|
+
rspec (~> 2.13)
|
61
73
|
hike (1.2.3)
|
62
74
|
i18n (0.6.4)
|
75
|
+
listen (1.1.6)
|
76
|
+
rb-fsevent (>= 0.9.3)
|
77
|
+
rb-inotify (>= 0.9)
|
78
|
+
rb-kqueue (>= 0.2)
|
79
|
+
lumberjack (1.0.3)
|
63
80
|
mail (2.5.4)
|
64
81
|
mime-types (~> 1.16)
|
65
82
|
treetop (~> 1.4.8)
|
83
|
+
method_source (0.8.1)
|
66
84
|
mime-types (1.23)
|
67
85
|
mini_portile (0.5.1)
|
68
86
|
minitest (4.7.5)
|
@@ -71,6 +89,10 @@ GEM
|
|
71
89
|
mini_portile (~> 0.5.0)
|
72
90
|
polyglot (0.3.3)
|
73
91
|
posix-spawn (0.3.6)
|
92
|
+
pry (0.9.12.2)
|
93
|
+
coderay (~> 1.0.5)
|
94
|
+
method_source (~> 0.8)
|
95
|
+
slop (~> 3.4)
|
74
96
|
pygments.rb (0.5.2)
|
75
97
|
posix-spawn (~> 0.3.6)
|
76
98
|
yajl-ruby (~> 1.1.0)
|
@@ -91,6 +113,11 @@ GEM
|
|
91
113
|
rake (>= 0.8.7)
|
92
114
|
thor (>= 0.18.1, < 2.0)
|
93
115
|
rake (10.1.0)
|
116
|
+
rb-fsevent (0.9.3)
|
117
|
+
rb-inotify (0.9.0)
|
118
|
+
ffi (>= 0.5.0)
|
119
|
+
rb-kqueue (0.2.0)
|
120
|
+
ffi (>= 0.5.0)
|
94
121
|
rest-client (1.6.7)
|
95
122
|
mime-types (>= 1.16)
|
96
123
|
rr (1.1.1)
|
@@ -108,6 +135,7 @@ GEM
|
|
108
135
|
multi_json (~> 1.0)
|
109
136
|
simplecov-html (~> 0.7.1)
|
110
137
|
simplecov-html (0.7.1)
|
138
|
+
slop (3.4.5)
|
111
139
|
sprockets (2.10.0)
|
112
140
|
hike (~> 1.2)
|
113
141
|
multi_json (~> 1.0)
|
@@ -134,6 +162,8 @@ PLATFORMS
|
|
134
162
|
DEPENDENCIES
|
135
163
|
coveralls
|
136
164
|
gollum_rails!
|
165
|
+
guard
|
166
|
+
guard-rspec
|
137
167
|
rails (>= 4.0.0)
|
138
168
|
rr (~> 1.1.1)
|
139
169
|
rspec (~> 2.13.0)
|
data/Guardfile
ADDED
data/HISTORY.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 1.4.3 1th September 2013
|
2
|
+
* Display the current pages version (short OR long)
|
3
|
+
* Display if the page is a sub page
|
4
|
+
* Display the pages filename
|
5
|
+
* Improved specs
|
6
|
+
* Refactored find method to return nil if no page was found (BUG)
|
7
|
+
* Refactored find_or_initialize_by_name to be useable :)
|
8
|
+
* Returning nil on history if a page was not saved
|
9
|
+
* Added finding with version string
|
10
|
+
* Using activemodel convenient `destroy` and deprecated old `delete`
|
11
|
+
* Added callback for initializer
|
12
|
+
|
1
13
|
# 1.4.2 1th August 2013
|
2
14
|
* Found an issue that the Wiki was not updating from external pushes
|
3
15
|
* Some helper methods implemented
|
data/README.md
CHANGED
data/gollum_rails.gemspec
CHANGED
@@ -4,7 +4,7 @@ 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.
|
7
|
+
s.version = '1.4.3'
|
8
8
|
|
9
9
|
s.summary = 'Combines Gollum and Rails'
|
10
10
|
s.description= 'include Gollum into Rails with ease'
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.files = %w[
|
29
29
|
Gemfile
|
30
30
|
Gemfile.lock
|
31
|
+
Guardfile
|
31
32
|
HISTORY.md
|
32
33
|
LICENSE
|
33
34
|
README.md
|
@@ -65,7 +66,6 @@ Gem::Specification.new do |s|
|
|
65
66
|
spec/gollum_rails/respository_spec.rb
|
66
67
|
spec/gollum_rails/setup_spec.rb
|
67
68
|
spec/gollum_rails/wiki_spec.rb
|
68
|
-
spec/spec.opts
|
69
69
|
spec/spec_helper.rb
|
70
70
|
]
|
71
71
|
# = MANIFEST =
|
data/lib/gollum_rails.rb
CHANGED
@@ -41,11 +41,13 @@ module GollumRails
|
|
41
41
|
#
|
42
42
|
# name - the pagename to search
|
43
43
|
# wiki - instance of Gollum::Wiki
|
44
|
+
# version - optional - The pages version
|
44
45
|
#
|
45
46
|
# Returns the Gollum::Page class
|
46
|
-
def find_page(name, wiki)
|
47
|
+
def find_page(name, wiki, version=nil)
|
48
|
+
wiki.clear_cache
|
47
49
|
path_data = parse_path(name)
|
48
|
-
wiki.paged(path_data[:name], path_data[:path], exact = true)
|
50
|
+
wiki.paged(path_data[:name], path_data[:path], exact = true, version)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -61,6 +63,7 @@ module GollumRails
|
|
61
63
|
def new_page( name, content, wiki, type=:markdown, commit={} )
|
62
64
|
path_data = self.class.parse_path(name)
|
63
65
|
wiki.write_page( path_data[:name], type, content, commit, path_data[:path].gsub!(/^\//, "").gsub!(/(\/)+$/,'') || "" )
|
66
|
+
wiki.clear_cache
|
64
67
|
self.class.find_page( name, wiki )
|
65
68
|
end
|
66
69
|
|
@@ -75,11 +78,14 @@ module GollumRails
|
|
75
78
|
#
|
76
79
|
# Returns the page
|
77
80
|
def update_page( page, wiki, content=nil, commit={}, name=nil, format=nil)
|
78
|
-
|
81
|
+
wiki.clear_cache
|
82
|
+
return page if page.nil?
|
79
83
|
name ||= page.name
|
80
84
|
format = (format || page.format).to_sym
|
81
85
|
content ||= page.raw_data
|
82
|
-
|
86
|
+
|
87
|
+
wiki.update_page(page,name,format,content.to_s,commit) unless ((!content||page.raw_data == content) && page.format == format)
|
88
|
+
|
83
89
|
self.class.find_page( mixin(page.url_path, name), wiki )
|
84
90
|
end
|
85
91
|
|
@@ -103,6 +109,7 @@ module GollumRails
|
|
103
109
|
#
|
104
110
|
# Returns the commit id
|
105
111
|
def delete_page( page,wiki,commit={} )
|
112
|
+
wiki.clear_cache
|
106
113
|
wiki.delete_page(page, commit)
|
107
114
|
end
|
108
115
|
|
@@ -123,6 +130,7 @@ module GollumRails
|
|
123
130
|
#
|
124
131
|
# Returns the Gollum::Page class
|
125
132
|
def find_page(name)
|
133
|
+
|
126
134
|
self.class.find_page(name)
|
127
135
|
end
|
128
136
|
|
data/lib/gollum_rails/page.rb
CHANGED
@@ -45,9 +45,13 @@ module GollumRails
|
|
45
45
|
# commit - Hash
|
46
46
|
#
|
47
47
|
# Returns self
|
48
|
-
def find_or_initialize_by_name(name, commit)
|
48
|
+
def find_or_initialize_by_name(name, commit={})
|
49
49
|
result_for_find = find(name)
|
50
|
-
|
50
|
+
unless result_for_find.nil?
|
51
|
+
result_for_find
|
52
|
+
else
|
53
|
+
new(:format => :markdown, :name => name, :content => ".", :commit => commit)
|
54
|
+
end
|
51
55
|
end
|
52
56
|
|
53
57
|
# Checks if the fileformat is supported
|
@@ -56,8 +60,7 @@ module GollumRails
|
|
56
60
|
#
|
57
61
|
# Returns true or false
|
58
62
|
def format_supported?(format)
|
59
|
-
|
60
|
-
format.in?(supported)
|
63
|
+
Gollum::Markup.formats.include?(format.to_sym)
|
61
64
|
end
|
62
65
|
|
63
66
|
# first creates an instance of itself and executes the save function.
|
@@ -87,10 +90,15 @@ module GollumRails
|
|
87
90
|
# Finds a page based on the name and specified version
|
88
91
|
#
|
89
92
|
# name - the name of the page
|
93
|
+
# version - optional - The pages version
|
90
94
|
#
|
91
95
|
# Return an instance of Gollum::Page
|
92
|
-
def find(name)
|
93
|
-
|
96
|
+
def find(name, version=nil)
|
97
|
+
page = Adapters::Gollum::Page.find_page(name, wiki, version)
|
98
|
+
|
99
|
+
return new( :gollum_page => page ) unless page.nil?
|
100
|
+
return nil
|
101
|
+
|
94
102
|
end
|
95
103
|
|
96
104
|
# Gets all pages in the wiki
|
@@ -127,11 +135,13 @@ module GollumRails
|
|
127
135
|
#
|
128
136
|
# commit must be given to perform any page action!
|
129
137
|
def initialize(attrs = {})
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
138
|
+
run_callbacks :initialize do
|
139
|
+
if Adapters::Gollum::Connector.enabled
|
140
|
+
attrs.each{|k,v| self.public_send("#{k}=",v)} if attrs
|
141
|
+
update_attrs if attrs[:gollum_page]
|
142
|
+
else
|
143
|
+
raise GollumInternalError, 'gollum_rails is not enabled!'
|
144
|
+
end
|
135
145
|
end
|
136
146
|
end
|
137
147
|
|
@@ -141,10 +151,10 @@ module GollumRails
|
|
141
151
|
|
142
152
|
|
143
153
|
# Gets / Sets the pages name
|
144
|
-
|
154
|
+
attr_writer :name
|
145
155
|
|
146
156
|
# Gets / Sets the contents content
|
147
|
-
|
157
|
+
attr_writer :content
|
148
158
|
|
149
159
|
# Gets / Sets the commit Hash
|
150
160
|
attr_accessor :commit
|
@@ -160,9 +170,16 @@ module GollumRails
|
|
160
170
|
|
161
171
|
# Gets the pages format
|
162
172
|
def format
|
163
|
-
@format.to_sym
|
173
|
+
(@format || @gollum_page.format).to_sym
|
164
174
|
end
|
165
175
|
|
176
|
+
def name
|
177
|
+
@name ||= @gollum_page.name
|
178
|
+
end
|
179
|
+
|
180
|
+
def content
|
181
|
+
@content ||= @gollum_page.content
|
182
|
+
end
|
166
183
|
|
167
184
|
# Gets the page class
|
168
185
|
def page
|
@@ -236,19 +253,29 @@ module GollumRails
|
|
236
253
|
@gollum_page = page.update_page(gollum_page, wiki, content, get_right_commit(commit), name, format)
|
237
254
|
end
|
238
255
|
end
|
239
|
-
|
256
|
+
|
240
257
|
# == Deletes current page (also available static. See below)
|
241
258
|
#
|
242
259
|
# commit - optional. If given this commit will be used instead of that one, used
|
243
260
|
# to initialize the instance
|
244
261
|
#
|
245
262
|
# Returns the commit id of the current action as String
|
246
|
-
def
|
263
|
+
def destroy(commit=nil)
|
247
264
|
run_callbacks :delete do
|
248
265
|
page.delete_page(gollum_page, wiki, get_right_commit(commit))
|
249
266
|
end
|
250
267
|
end
|
251
268
|
|
269
|
+
# == Deletes current page (also available static. See below)
|
270
|
+
#
|
271
|
+
# commit - optional. If given this commit will be used instead of that one, used
|
272
|
+
# to initialize the instance
|
273
|
+
#
|
274
|
+
# Returns the commit id of the current action as String
|
275
|
+
def delete(commit=nil)
|
276
|
+
destroy(commit)
|
277
|
+
end
|
278
|
+
|
252
279
|
# checks if entry already has been saved
|
253
280
|
#
|
254
281
|
#
|
@@ -305,6 +332,7 @@ module GollumRails
|
|
305
332
|
#
|
306
333
|
# Returns an Array
|
307
334
|
def history
|
335
|
+
return nil unless persisted?
|
308
336
|
gollum_page.versions
|
309
337
|
end
|
310
338
|
|
@@ -315,11 +343,38 @@ module GollumRails
|
|
315
343
|
"%s <%s>" % [history.last.author.name, history.last.author.email]
|
316
344
|
end
|
317
345
|
|
346
|
+
# == Compare 2 Commits.
|
347
|
+
#
|
348
|
+
# sha1 - SHA1
|
349
|
+
# sha2 - SHA1
|
350
|
+
def compare_commits(sha1,sha2=nil)
|
351
|
+
Page.wiki.full_reverse_diff_for(@gollum_page,sha1,sha2)
|
352
|
+
end
|
318
353
|
|
319
|
-
|
320
|
-
|
354
|
+
# == The pages filename, based on the name and the format
|
355
|
+
#
|
356
|
+
# Returns a String
|
357
|
+
def filename
|
358
|
+
Page.wiki.page_file_name(@name, @format)
|
321
359
|
end
|
322
360
|
|
361
|
+
# == Checks if current page is a subpage
|
362
|
+
def sub_page?
|
363
|
+
return nil unless persisted?
|
364
|
+
@gollum_page.sub_page
|
365
|
+
end
|
366
|
+
|
367
|
+
# == Gets the version of current commit
|
368
|
+
#
|
369
|
+
def current_version(long=false)
|
370
|
+
return nil unless persisted?
|
371
|
+
unless long
|
372
|
+
@gollum_page.version_short
|
373
|
+
else
|
374
|
+
@gollum_page.version.to_s
|
375
|
+
end
|
376
|
+
|
377
|
+
end
|
323
378
|
|
324
379
|
#######
|
325
380
|
private
|
@@ -137,25 +137,45 @@ describe "Gollum Page" do
|
|
137
137
|
expect{RailsModel.create! @call}.to raise_error Gollum::DuplicatePageError
|
138
138
|
end
|
139
139
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
140
|
+
describe "supported formats" do
|
141
|
+
['markdown', 'rdoc', 'org', 'pod'].each do |format|
|
142
|
+
it "should support #{format}" do
|
143
|
+
RailsModel.format_supported?(format).should be_true
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
147
|
end
|
148
|
-
|
149
|
-
|
150
|
-
rr
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
148
|
+
|
149
|
+
describe "accessors" do
|
150
|
+
let(:rr){RailsModel.new @call}
|
151
|
+
|
152
|
+
it "should have a name" do
|
153
|
+
expect(rr.name).to match(/^Goole$/)
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should have a content" do
|
157
|
+
expect(rr.content).to match(/^content\ data$/)
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should have a commit which is a Hash" do
|
161
|
+
expect(rr.commit).to be_a Hash
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should be @commit" do
|
165
|
+
expect(rr.commit).to be(@commit)
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should have a format" do
|
169
|
+
expect(rr.format.to_s).to match('markdown')
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should be a Gollum::Page after save" do
|
173
|
+
rr.save
|
174
|
+
expect(rr.gollum_page).to be_a Gollum::Page
|
175
|
+
end
|
176
|
+
|
158
177
|
end
|
178
|
+
|
159
179
|
it "should test setters" do
|
160
180
|
rr = RailsModel.new
|
161
181
|
rr.name=("google").should == "google"
|
@@ -163,12 +183,34 @@ describe "Gollum Page" do
|
|
163
183
|
rr.content=("content").should == "content"
|
164
184
|
rr.format=(:markdown).should == :markdown
|
165
185
|
end
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
186
|
+
|
187
|
+
it "tests the find method to return nil if no page was found" do
|
188
|
+
expect(RailsModel.find('whoooohoo')).to be_nil
|
189
|
+
end
|
190
|
+
|
191
|
+
it "tests the find method to return a gollum_rails:page if a page was found" do
|
192
|
+
expect(RailsModel.find('Goole')).to be_a GollumRails::Page
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'should not be persisted on initialization or finding' do
|
196
|
+
init = RailsModel.find_or_initialize_by_name('totallybad', @commit)
|
197
|
+
expect(init.persisted?).to be_false
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should find the page without a commit if it exists" do
|
201
|
+
expect(RailsModel.find_or_initialize_by_name("Goole").persisted?).to be_true
|
202
|
+
end
|
203
|
+
|
204
|
+
it "should find the page with a commit if it exists" do
|
205
|
+
expect(RailsModel.find_or_initialize_by_name("Goole", @commit).persisted?).to be_true
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should be valid on initialization or finding" do
|
209
|
+
init = RailsModel.find_or_initialize_by_name('whoooohooo', @commit)
|
210
|
+
expect(init.valid?).to be_true
|
211
|
+
|
212
|
+
#RailsModel.find_or_initialize_by_name(@call[:name], @commit).should be_a GollumRails::Page
|
213
|
+
|
172
214
|
end
|
173
215
|
end
|
174
216
|
describe "callbacks" do
|
@@ -237,29 +279,35 @@ describe "Gollum Page" do
|
|
237
279
|
class Callbackt < GollumRails::Page
|
238
280
|
validates_presence_of :name
|
239
281
|
end
|
282
|
+
|
240
283
|
cla = Callbackt.new @call
|
241
284
|
cla.valid?.should be_true
|
242
285
|
end
|
286
|
+
|
243
287
|
class SugarBaby < GollumRails::Page
|
244
288
|
validates_presence_of :name
|
245
289
|
validates_length_of :name, :minimum => 20
|
246
290
|
validates_length_of :format, :maximum => 14
|
247
291
|
end
|
292
|
+
|
248
293
|
it "should test string validation" do
|
249
294
|
@call[:name] = "das ist zu lang"*10
|
250
295
|
cla = SugarBaby.new @call
|
251
296
|
cla.valid?.should be_true
|
252
297
|
end
|
298
|
+
|
253
299
|
it "should test the presence validator" do
|
254
300
|
@call[:name] = [ ]
|
255
301
|
bla = SugarBaby.new @call
|
256
302
|
bla.valid?.should be_false
|
257
303
|
end
|
304
|
+
|
258
305
|
it "should test the length validator for name" do
|
259
306
|
@call[:name] = "das"
|
260
307
|
res = SugarBaby.new @call
|
261
308
|
res.valid?.should be_false
|
262
309
|
end
|
310
|
+
|
263
311
|
it "should test the length validator for format" do
|
264
312
|
@call[:format] = :toolongformatstringforvalidator
|
265
313
|
res = SugarBaby.new @call
|
@@ -267,21 +315,131 @@ describe "Gollum Page" do
|
|
267
315
|
end
|
268
316
|
|
269
317
|
end
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
318
|
+
|
319
|
+
describe "diffing commits" do
|
320
|
+
class CommitDiff < GollumRails::Page
|
321
|
+
end
|
322
|
+
|
323
|
+
it "should display the diff commit" do
|
324
|
+
commit = {
|
325
|
+
name: "flo",
|
326
|
+
message: "commit",
|
327
|
+
email: "mosny@zyg.li"
|
328
|
+
}
|
329
|
+
call = {
|
330
|
+
name: "a Page",
|
331
|
+
content: "my content",
|
332
|
+
commit: commit,
|
333
|
+
format: :markdown
|
334
|
+
}
|
335
|
+
|
336
|
+
res = CommitDiff.new call
|
337
|
+
res.save
|
338
|
+
res.update_attributes("content",nil,:markdown, @commit)
|
339
|
+
diff = res.compare_commits(res.history.first)
|
340
|
+
expect(diff).to be_a String
|
341
|
+
expect(diff).to match(/diff/)
|
342
|
+
res.delete
|
343
|
+
end
|
344
|
+
|
345
|
+
end
|
346
|
+
|
347
|
+
describe "Filename" do
|
348
|
+
class Fns < GollumRails::Page
|
349
|
+
end
|
350
|
+
it "should assemble a filename" do
|
351
|
+
res = CommitDiff.new @call
|
352
|
+
expect(res.filename).to match(/^Goole\.md$/)
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
describe "Sub Page" do
|
357
|
+
class Fns < GollumRails::Page
|
358
|
+
end
|
359
|
+
|
360
|
+
it "should return nil if not persisted" do
|
361
|
+
res = CommitDiff.new @call
|
362
|
+
expect(res.sub_page?).to be_nil
|
363
|
+
end
|
364
|
+
it "should be true" do
|
365
|
+
res = CommitDiff.new @call.merge(name: '_aPage')
|
366
|
+
res.save
|
367
|
+
expect(res.sub_page?).to be_true
|
368
|
+
res.delete
|
369
|
+
end
|
370
|
+
|
371
|
+
it "should be false" do
|
372
|
+
res = CommitDiff.new @call
|
373
|
+
res.save
|
374
|
+
expect(res.sub_page?).to be_false
|
375
|
+
res.delete
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
describe "Current version" do
|
380
|
+
class Fns < GollumRails::Page
|
381
|
+
end
|
382
|
+
|
383
|
+
it "current version should have 7 digest" do
|
384
|
+
res = CommitDiff.new @call
|
385
|
+
res.save
|
386
|
+
expect(res.current_version.length).to be(7)
|
387
|
+
res.delete
|
388
|
+
end
|
389
|
+
|
390
|
+
it "should be nil if page has not been set" do
|
391
|
+
res = CommitDiff.new @call
|
392
|
+
expect(res.current_version).to be_nil
|
393
|
+
end
|
285
394
|
|
286
|
-
|
395
|
+
it "should be the latest version of the page but shortened" do
|
396
|
+
res = CommitDiff.new @call
|
397
|
+
res.save
|
398
|
+
expect(res.gollum_page.version.to_s).to match(res.current_version)
|
399
|
+
res.delete
|
400
|
+
end
|
401
|
+
it "should display the long version" do
|
402
|
+
res = CommitDiff.new @call
|
403
|
+
res.save
|
404
|
+
expect(res.gollum_page.version.to_s).to match(/^#{res.current_version(true)}$/)
|
405
|
+
res.delete
|
406
|
+
end
|
407
|
+
|
408
|
+
end
|
409
|
+
|
410
|
+
describe 'History' do
|
411
|
+
class Fns < GollumRails::Page
|
412
|
+
end
|
413
|
+
|
414
|
+
it "history should return nil if no gollum_page was saved" do
|
415
|
+
res = Fns.new @call
|
416
|
+
expect(res.history).to be_nil
|
417
|
+
end
|
418
|
+
|
419
|
+
it "history should return the pages versions if there are changes" do
|
420
|
+
res = Fns.new @call
|
421
|
+
res.save
|
422
|
+
expect(res.history).to be_a Array
|
423
|
+
res.delete
|
424
|
+
end
|
425
|
+
|
426
|
+
end
|
427
|
+
|
428
|
+
# describe "the thread safety" do
|
429
|
+
# class ThreadModel < GollumRails::Page
|
430
|
+
#
|
431
|
+
# end
|
432
|
+
# it "should save " do
|
433
|
+
# 100.times do |time|
|
434
|
+
# Thread.new do
|
435
|
+
# ThreadModel.new(@call)
|
436
|
+
# ThreadModel.save.should be_a(GollumRails::Page)
|
437
|
+
# ThreadModel.delete(@commit).length.should == 40
|
438
|
+
# end
|
439
|
+
# end
|
440
|
+
#
|
441
|
+
# end
|
442
|
+
|
443
|
+
|
444
|
+
#end
|
287
445
|
end
|
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,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.
|
4
|
+
version: 1.4.3
|
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-
|
11
|
+
date: 2013-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -88,6 +88,7 @@ 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
|
@@ -125,7 +126,6 @@ files:
|
|
125
126
|
- spec/gollum_rails/respository_spec.rb
|
126
127
|
- spec/gollum_rails/setup_spec.rb
|
127
128
|
- spec/gollum_rails/wiki_spec.rb
|
128
|
-
- spec/spec.opts
|
129
129
|
- spec/spec_helper.rb
|
130
130
|
homepage: https://github.com/nirnanaaa/gollum_rails
|
131
131
|
licenses:
|
data/spec/spec.opts
DELETED