gollum_rails 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/HISTORY.md +7 -0
- data/Rakefile +1 -1
- data/gollum_rails.gemspec +16 -2
- data/lib/gollum_rails.rb +5 -3
- data/lib/gollum_rails/adapters/activemodel.rb +1 -5
- data/lib/gollum_rails/adapters/gollum.rb +9 -5
- data/lib/gollum_rails/page.rb +74 -83
- data/spec/gollum_rails/adapters/activemodel/error_spec.rb +11 -0
- data/spec/gollum_rails/adapters/activemodel/naming_spec.rb +27 -0
- data/spec/gollum_rails/adapters/activemodel/validation_unused.rb +102 -0
- data/spec/gollum_rails/adapters/gollum/committer_spec.rb +0 -0
- data/spec/gollum_rails/adapters/gollum/connector_spec.rb +18 -0
- data/spec/gollum_rails/adapters/gollum/error_spec.rb +7 -0
- data/spec/gollum_rails/adapters/gollum/page_spec.rb +89 -0
- data/spec/gollum_rails/adapters/gollum/wiki_spec.rb +27 -0
- data/spec/gollum_rails/modules/hash_spec.rb +31 -0
- data/spec/gollum_rails/page_spec.rb +191 -0
- data/spec/gollum_rails/respository_spec.rb +0 -0
- data/spec/gollum_rails/setup_spec.rb +44 -0
- data/spec/gollum_rails/wiki_spec.rb +0 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +43 -0
- metadata +17 -3
- data/lib/gollum_rails/initializer.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dd7344f385aa410641d4306e45816ded6fcc3ab
|
4
|
+
data.tar.gz: 4c575604cbf42c6c261a282fe8bddba7d9e05b0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ac3f7568b4f3125dd80d0bf90126216d46defc5a06c304a1ee1a241dc2f9b96f1c208ed9fa0b92c7618e92d851e2012200ab768aafc4639eba09fd69f766f57
|
7
|
+
data.tar.gz: 4541dd32cf2e51123f88a4daa0970dcfa08b214099c05f86d65f7d07ec0c3a7c78fdcc5f76210ddf28635e8ff9274ed828cbe0b27cafabdfbbcdb22a97abf1ca
|
data/Gemfile.lock
CHANGED
@@ -10,7 +10,7 @@ GIT
|
|
10
10
|
PATH
|
11
11
|
remote: .
|
12
12
|
specs:
|
13
|
-
gollum_rails (1.0.
|
13
|
+
gollum_rails (1.0.1)
|
14
14
|
activemodel (~> 3.2.13)
|
15
15
|
gollum-lib (~> 1.0.0)
|
16
16
|
|
@@ -69,6 +69,7 @@ GEM
|
|
69
69
|
i18n (0.6.1)
|
70
70
|
journey (1.0.4)
|
71
71
|
json (1.7.7)
|
72
|
+
json (1.7.7-java)
|
72
73
|
mail (2.5.3)
|
73
74
|
i18n (>= 0.4.0)
|
74
75
|
mime-types (~> 1.16)
|
@@ -138,6 +139,7 @@ GEM
|
|
138
139
|
yajl-ruby (1.1.0)
|
139
140
|
|
140
141
|
PLATFORMS
|
142
|
+
java
|
141
143
|
ruby
|
142
144
|
|
143
145
|
DEPENDENCIES
|
data/HISTORY.md
CHANGED
data/Rakefile
CHANGED
@@ -148,7 +148,7 @@ task :gemspec => :validate do
|
|
148
148
|
split("\n").
|
149
149
|
sort.
|
150
150
|
reject { |file| file =~ /^\./ }.
|
151
|
-
reject { |file| file =~ /^(doc|pkg|
|
151
|
+
reject { |file| file =~ /^(doc|pkg|script|config|Home\.md|\.gitattributes)/ }.
|
152
152
|
map { |file| " #{file}" }.
|
153
153
|
join("\n")
|
154
154
|
|
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.0.
|
7
|
+
s.version = '1.0.1'
|
8
8
|
|
9
9
|
s.summary = 'Combines the benefits from Gollum and Rails'
|
10
10
|
s.description= 'Use all the benefits from Rails and combine them with the awesome Gollum wiki'
|
@@ -53,11 +53,25 @@ Gem::Specification.new do |s|
|
|
53
53
|
lib/gollum_rails/adapters/gollum/error.rb
|
54
54
|
lib/gollum_rails/adapters/gollum/page.rb
|
55
55
|
lib/gollum_rails/adapters/gollum/wiki.rb
|
56
|
-
lib/gollum_rails/initializer.rb
|
57
56
|
lib/gollum_rails/modules/hash.rb
|
58
57
|
lib/gollum_rails/modules/loader.rb
|
59
58
|
lib/gollum_rails/page.rb
|
60
59
|
lib/gollum_rails/setup.rb
|
60
|
+
spec/gollum_rails/adapters/activemodel/error_spec.rb
|
61
|
+
spec/gollum_rails/adapters/activemodel/naming_spec.rb
|
62
|
+
spec/gollum_rails/adapters/activemodel/validation_unused.rb
|
63
|
+
spec/gollum_rails/adapters/gollum/committer_spec.rb
|
64
|
+
spec/gollum_rails/adapters/gollum/connector_spec.rb
|
65
|
+
spec/gollum_rails/adapters/gollum/error_spec.rb
|
66
|
+
spec/gollum_rails/adapters/gollum/page_spec.rb
|
67
|
+
spec/gollum_rails/adapters/gollum/wiki_spec.rb
|
68
|
+
spec/gollum_rails/modules/hash_spec.rb
|
69
|
+
spec/gollum_rails/page_spec.rb
|
70
|
+
spec/gollum_rails/respository_spec.rb
|
71
|
+
spec/gollum_rails/setup_spec.rb
|
72
|
+
spec/gollum_rails/wiki_spec.rb
|
73
|
+
spec/spec.opts
|
74
|
+
spec/spec_helper.rb
|
61
75
|
]
|
62
76
|
# = MANIFEST =
|
63
77
|
|
data/lib/gollum_rails.rb
CHANGED
@@ -10,9 +10,11 @@ require 'gollum-lib'
|
|
10
10
|
# * ...
|
11
11
|
#
|
12
12
|
module GollumRails
|
13
|
+
autoload :Page, 'gollum_rails/page'
|
14
|
+
autoload :Setup, 'gollum_rails/setup'
|
13
15
|
|
14
16
|
# GollumRails version string
|
15
|
-
VERSION = '1.0.
|
17
|
+
VERSION = '1.0.1'
|
16
18
|
|
17
19
|
# Simplified error
|
18
20
|
class Error < StandardError; end
|
@@ -27,8 +29,8 @@ end
|
|
27
29
|
|
28
30
|
require File.expand_path '../gollum_rails/adapters/activemodel', __FILE__
|
29
31
|
require File.expand_path '../gollum_rails/adapters/gollum', __FILE__
|
30
|
-
require File.expand_path '../gollum_rails/setup', __FILE__
|
31
|
-
require File.expand_path '../gollum_rails/page', __FILE__
|
32
|
+
#require File.expand_path '../gollum_rails/setup', __FILE__
|
33
|
+
#require File.expand_path '../gollum_rails/page', __FILE__
|
32
34
|
# load extensions
|
33
35
|
require File.expand_path '../gollum_rails/modules/loader', __FILE__
|
34
36
|
|
@@ -3,7 +3,6 @@ module GollumRails
|
|
3
3
|
|
4
4
|
# Adapter class. To be documented
|
5
5
|
module Adapters
|
6
|
-
|
7
6
|
# ActiveModel improvements and own connectors
|
8
7
|
#
|
9
8
|
# including:
|
@@ -34,7 +33,7 @@ module GollumRails
|
|
34
33
|
module ActiveModel
|
35
34
|
|
36
35
|
# connector version
|
37
|
-
VERSION="1.
|
36
|
+
VERSION="1.20.0"
|
38
37
|
end
|
39
38
|
end
|
40
39
|
end
|
@@ -42,6 +41,3 @@ end
|
|
42
41
|
require File.expand_path '../activemodel/boolean', __FILE__
|
43
42
|
require File.expand_path '../activemodel/naming', __FILE__
|
44
43
|
require File.expand_path '../activemodel/error', __FILE__
|
45
|
-
|
46
|
-
# removed in 0.0.8
|
47
|
-
#require File.expand_path '../activemodel/validation', __FILE__
|
@@ -10,8 +10,12 @@ module GollumRails
|
|
10
10
|
# currently nothing implemented
|
11
11
|
#
|
12
12
|
module Gollum
|
13
|
+
autoload :Wiki, 'gollum_rails/adapters/gollum/wiki'
|
14
|
+
autoload :Page, 'gollum_rails/adapters/gollum/page'
|
15
|
+
autoload :Committer, 'gollum_rails/adapters/gollum/committer'
|
16
|
+
autoload :Error, 'gollum_rails/adapters/gollum/error'
|
13
17
|
# connector version
|
14
|
-
VERSION="1.0.
|
18
|
+
VERSION="1.0.3"
|
15
19
|
|
16
20
|
# Gollum connector class, keeping defaults!
|
17
21
|
#
|
@@ -63,8 +67,8 @@ module GollumRails
|
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
66
|
-
require File.expand_path '../gollum/error', __FILE__
|
67
|
-
require File.expand_path '../gollum/wiki', __FILE__
|
68
|
-
require File.expand_path '../gollum/committer', __FILE__
|
69
|
-
require File.expand_path '../gollum/page', __FILE__
|
70
|
+
#require File.expand_path '../gollum/error', __FILE__
|
71
|
+
#require File.expand_path '../gollum/wiki', __FILE__
|
72
|
+
#require File.expand_path '../gollum/committer', __FILE__
|
73
|
+
#require File.expand_path '../gollum/page', __FILE__
|
70
74
|
|
data/lib/gollum_rails/page.rb
CHANGED
@@ -37,7 +37,74 @@ module GollumRails
|
|
37
37
|
# Sets the validator
|
38
38
|
attr_writer :validator
|
39
39
|
|
40
|
+
# Finds an existing page or creates it
|
41
|
+
#
|
42
|
+
# name - The name
|
43
|
+
# commit - Hash
|
44
|
+
#
|
45
|
+
# Returns self
|
46
|
+
def find_or_initialize_by_name(name, commit)
|
47
|
+
result_for_find = self.find(name)
|
48
|
+
self.create({:format => :markdown, :name => name, :content => ".", :commit => commit })
|
49
|
+
end
|
50
|
+
|
51
|
+
# Checks if the fileformat is supported
|
52
|
+
#
|
53
|
+
# format - String
|
54
|
+
#
|
55
|
+
# Returns true or false
|
56
|
+
def format_supported?(format)
|
57
|
+
supported = ['ascii', 'github-markdown','markdown', 'creole', 'org', 'pod', 'rdoc']
|
58
|
+
format.in?(supported)
|
59
|
+
end
|
60
|
+
|
61
|
+
# first creates an instance of itself and executes the save function.
|
62
|
+
#
|
63
|
+
# hash - Hash containing the page data
|
64
|
+
#
|
65
|
+
#
|
66
|
+
# Returns an instance of Gollum::Page or false
|
67
|
+
def create(hash)
|
68
|
+
page = Page.new hash
|
69
|
+
page.save
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
# calls `create` on current class. If returned value is nil an exception will be thrown
|
74
|
+
#
|
75
|
+
# hash - Hash containing the page data
|
76
|
+
#
|
77
|
+
#
|
78
|
+
# Returns an instance of Gollum::Page
|
79
|
+
def create!(hash)
|
80
|
+
action = self.create(hash)
|
81
|
+
action
|
82
|
+
end
|
83
|
+
|
84
|
+
# Finds a page based on the name and specified version
|
85
|
+
#
|
86
|
+
# name - the name of the page
|
87
|
+
#
|
88
|
+
# Return an instance of Gollum::Page
|
89
|
+
def find(name)
|
90
|
+
page = GollumRails::Adapters::Gollum::Page.new
|
91
|
+
page.find_page name
|
92
|
+
end
|
93
|
+
|
94
|
+
# Gets all pages in the wiki
|
95
|
+
def all
|
96
|
+
self.wiki.pages
|
97
|
+
end
|
98
|
+
alias_method :find_all, :all
|
99
|
+
|
100
|
+
# Gets the wiki instance
|
101
|
+
def wiki
|
102
|
+
@wiki || Adapters::Gollum::Connector.wiki_class
|
103
|
+
end
|
104
|
+
|
40
105
|
end
|
106
|
+
|
107
|
+
|
41
108
|
# Initializes a new Page
|
42
109
|
#
|
43
110
|
# attrs - Hash of attributes
|
@@ -55,8 +122,6 @@ module GollumRails
|
|
55
122
|
# Setters
|
56
123
|
#########
|
57
124
|
|
58
|
-
# Sets the wiki instance
|
59
|
-
attr_writer :wiki
|
60
125
|
|
61
126
|
# Gets / Sets the pages name
|
62
127
|
attr_accessor :name
|
@@ -64,52 +129,29 @@ module GollumRails
|
|
64
129
|
# Gets / Sets the contents content
|
65
130
|
attr_accessor :content
|
66
131
|
|
67
|
-
# Sets the commit Hash
|
68
|
-
|
132
|
+
# Gets / Sets the commit Hash
|
133
|
+
attr_accessor :commit
|
69
134
|
|
70
135
|
# Sets the format
|
71
136
|
attr_writer :format
|
72
137
|
|
73
|
-
# Sets the page
|
74
|
-
attr_writer :page
|
75
138
|
|
76
139
|
#########
|
77
140
|
# Getters
|
78
141
|
#########
|
79
142
|
|
80
|
-
# Gets the wiki instance
|
81
|
-
def wiki
|
82
|
-
@wiki || Adapters::Gollum::Connector.wiki_class
|
83
|
-
end
|
84
|
-
|
85
|
-
# Need to implement the Committer connector (forgot it completely)
|
86
|
-
# Gets the commit Hash from current object
|
87
|
-
def commit
|
88
|
-
@commit
|
89
|
-
end
|
90
143
|
|
91
144
|
# Gets the pages format
|
92
145
|
def format
|
93
146
|
@format.to_sym
|
94
147
|
end
|
95
148
|
|
96
|
-
# Gets the validator
|
97
|
-
def self.validator
|
98
|
-
@@validator ||= Adapters::ActiveModel::Validation.new
|
99
|
-
end
|
100
149
|
|
101
150
|
# Gets the page class
|
102
151
|
def page
|
103
152
|
@page ||= Adapters::Gollum::Connector.page_class.new
|
104
153
|
end
|
105
154
|
|
106
|
-
# Statically page getter
|
107
|
-
#
|
108
|
-
# DEPRECATED! Do not use
|
109
|
-
def self.page
|
110
|
-
Adapters::Gollum::Connector.page_class
|
111
|
-
end
|
112
|
-
|
113
155
|
#############
|
114
156
|
# activemodel
|
115
157
|
#############
|
@@ -137,10 +179,11 @@ module GollumRails
|
|
137
179
|
# Returns an instance of Gollum::Page or false
|
138
180
|
def save
|
139
181
|
run_callbacks :save do
|
182
|
+
return false unless valid?
|
140
183
|
begin
|
141
184
|
page.new_page(name,content,format,commit)
|
142
185
|
rescue ::Gollum::DuplicatePageError => e
|
143
|
-
page.
|
186
|
+
page.page = page.find_page(name)
|
144
187
|
end
|
145
188
|
return page.page
|
146
189
|
end
|
@@ -152,30 +195,6 @@ module GollumRails
|
|
152
195
|
# * implement full method!
|
153
196
|
alias_method :save!, :save
|
154
197
|
|
155
|
-
# first creates an instance of itself and executes the save function.
|
156
|
-
#
|
157
|
-
# hash - Hash containing the page data
|
158
|
-
#
|
159
|
-
#
|
160
|
-
# Returns an instance of Gollum::Page or false
|
161
|
-
def self.create(hash)
|
162
|
-
page = Page.new hash
|
163
|
-
page.save
|
164
|
-
end
|
165
|
-
|
166
|
-
# calls `create` on current class. If returned value is nil an exception will be thrown
|
167
|
-
#
|
168
|
-
# hash - Hash containing the page data
|
169
|
-
#
|
170
|
-
# TODO:
|
171
|
-
# * much testing
|
172
|
-
#
|
173
|
-
# Returns an instance of Gollum::Page
|
174
|
-
def self.create!(hash)
|
175
|
-
action = self.create(hash)
|
176
|
-
action
|
177
|
-
end
|
178
|
-
|
179
198
|
# Updates an existing page (or created)
|
180
199
|
#
|
181
200
|
# hash - Hash containing the attributes, you want to update
|
@@ -206,6 +225,8 @@ module GollumRails
|
|
206
225
|
#
|
207
226
|
#
|
208
227
|
def persisted?
|
228
|
+
return true if page.page.instance_of?(::Gollum::Page)
|
229
|
+
return false
|
209
230
|
end
|
210
231
|
# Previews the page - Mostly used if you want to see what you do before saving
|
211
232
|
#
|
@@ -219,40 +240,10 @@ module GollumRails
|
|
219
240
|
#
|
220
241
|
# Returns a String
|
221
242
|
def preview(format=:markdown)
|
222
|
-
preview = wiki.preview_page @name, @content, format
|
243
|
+
preview = self.class.wiki.preview_page @name, @content, format
|
223
244
|
preview.formatted_data
|
224
245
|
end
|
225
246
|
|
226
|
-
# Finds a page based on the name and specified version
|
227
|
-
#
|
228
|
-
# name - the name of the page
|
229
|
-
#
|
230
|
-
# Return an instance of Gollum::Page
|
231
|
-
def self.find(name)
|
232
|
-
page = GollumRails::Adapters::Gollum::Page.new
|
233
|
-
page.find_page name
|
234
|
-
end
|
235
|
-
|
236
|
-
# Finds an existing page or creates it
|
237
|
-
#
|
238
|
-
# name - The name
|
239
|
-
# commit - Hash
|
240
|
-
#
|
241
|
-
# Returns self
|
242
|
-
def self.find_or_initialize_by_name(name, commit)
|
243
|
-
result_for_find = self.find(name)
|
244
|
-
self.create({:format => :markdown, :name => name, :content => ".", :commit => commit })
|
245
|
-
end
|
246
|
-
|
247
|
-
# Checks if the fileformat is supported
|
248
|
-
#
|
249
|
-
# format - String
|
250
|
-
#
|
251
|
-
# Returns true or false
|
252
|
-
def self.format_supported?(format)
|
253
|
-
supported = ['ascii', 'github-markdown','markdown', 'creole', 'org', 'pod', 'rdoc']
|
254
|
-
format.in?(supported)
|
255
|
-
end
|
256
247
|
|
257
248
|
#######
|
258
249
|
private
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GollumRails::Adapters::ActiveModel::Naming do
|
4
|
+
include GollumRails::Adapters::ActiveModel::Naming
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@model = GollumRails::Adapters::ActiveModel::Naming
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should use _scores" do
|
11
|
+
class Blax < GollumRails::Adapters::ActiveModel::Naming::NameSpace
|
12
|
+
include GollumRails::Adapters::ActiveModel::Naming
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
class_name.should == self.class.name
|
16
|
+
class_name.should == "Blax"
|
17
|
+
plural_filename_for_class(Blax).should == "blaxes"
|
18
|
+
singular_filename_for_class(Blax).should == "blax"
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
bla = Blax.new
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe GollumRails::Adapters::ActiveModel::Validation do
|
3
|
+
before(:each) do
|
4
|
+
@model = GollumRails::Adapters::ActiveModel::Validation.new
|
5
|
+
|
6
|
+
end
|
7
|
+
it "should object types" do
|
8
|
+
test = {}
|
9
|
+
test[:boolean] = true
|
10
|
+
test[:string] = "Stringity"
|
11
|
+
test[:integer] = 1
|
12
|
+
test[:hash] = {}
|
13
|
+
test[:array] = []
|
14
|
+
test[:object] = Object
|
15
|
+
@model.validate do |sm|
|
16
|
+
sm.test(test[:string], "type=String").should be_true
|
17
|
+
sm.test(test[:array], "type=Integer").should be_false
|
18
|
+
sm.test(test[:string], "type=Object").should be_true
|
19
|
+
sm.test(test[:hash], "type=String").should be_false
|
20
|
+
sm.test(test[:integer], "type=Integer").should be_true
|
21
|
+
sm.test(test[:integer], "type=Object").should be_true
|
22
|
+
sm.test(test[:boolean], "type=Object").should be_true
|
23
|
+
sm.test(test[:boolean], "type=Boolean").should be_true
|
24
|
+
sm.test(test[:boolean], "type=TrueClass").should be_true
|
25
|
+
sm.test(test[:boolean], "type=FalseClass").should be_false
|
26
|
+
sm.test(test[:object], "type=Object").should be_true
|
27
|
+
sm.test(test[:array], "type=Array").should be_true
|
28
|
+
sm.test(test[:array], "type=Boolean").should be_false
|
29
|
+
sm.test(test, "type=Hash").should be_true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
it "should test module Boolean" do
|
33
|
+
@model.test(true, "type=Boolean").should be_true
|
34
|
+
@model.test(false, "type=Boolean").should be_true
|
35
|
+
@model.test(true, "type=TrueClass").should be_true
|
36
|
+
@model.test(false, "type=FalseClass").should be_true
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should test the maxlen" do
|
40
|
+
@model.validate do |sm|
|
41
|
+
sm.test("stringvalue", "min=20").should be_false
|
42
|
+
sm.test("stringvalue", "max=200").should be_true
|
43
|
+
sm.test(1, "min=2").should be_false
|
44
|
+
sm.test(2, "max=4").should be_true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
it "should test the presence validator" do
|
48
|
+
@model.validate do |sm|
|
49
|
+
sm.test([ ], "present=true").should be_false
|
50
|
+
sm.test(nil, "presence=true").should be_false
|
51
|
+
sm.test("test", "presence=true").should be_true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
it "tests chaining" do
|
55
|
+
@model.validate do |sm|
|
56
|
+
sm.test("google.de", "type=String,presence=true").should be_true
|
57
|
+
sm.test("google.com", "type=Integer,presence=true").should be_false
|
58
|
+
sm.test([ ], "type=Object,presence=true").should be_false
|
59
|
+
sm.test("google.de", "type=String,min=1,max=20,presence=true").should be_true
|
60
|
+
sm.test("google.de", "type=String,min=20,max=40").should be_false
|
61
|
+
sm.test(1, "type=Integer,min=1,max=20").should be_true
|
62
|
+
end
|
63
|
+
end
|
64
|
+
it "should test error message output" do
|
65
|
+
preset = "google.de"
|
66
|
+
@model.test(preset, "min=20")
|
67
|
+
@model.error[:variable][0].should == "is too short (minimum is 20 characters)"
|
68
|
+
|
69
|
+
@model.test preset, "type=Integer"
|
70
|
+
@model.error[:type][0].should == "not a kind of given class Integer"
|
71
|
+
|
72
|
+
@model.test preset, "max=2"
|
73
|
+
#is too long (maximum is 2 characters)
|
74
|
+
@model.error[:variable][0].should == "is too long (maximum is 2 characters)"
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should test the performance" do
|
81
|
+
@model.validate do |sm|
|
82
|
+
100.times do
|
83
|
+
expect do
|
84
|
+
sm.test("veryshortstring", "presence=true,max=2,min=1")
|
85
|
+
end.to take_less_than(0.1).seconds
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should test the blank param" do
|
91
|
+
@model.validate do |sm|
|
92
|
+
#sm.test("string")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
it "should test errors" do
|
96
|
+
@model.validate do |sm|
|
97
|
+
expect{sm.test("string", "presence!string")}.to raise_error GollumRails::Adapters::ActiveModel::Error
|
98
|
+
sm.test("string", "nobla=tebla").should be_true
|
99
|
+
sm.test("string", "type=123!").should be_false
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GollumRails::Adapters::Gollum::Connector do
|
4
|
+
before(:each) do
|
5
|
+
@class = GollumRails::Adapters::Gollum::Connector
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should test the Wiki class connector" do
|
9
|
+
@class.wiki_class.should == GollumRails::Adapters::Gollum::Wiki
|
10
|
+
end
|
11
|
+
it "should test the Page class connector" do
|
12
|
+
@class.page_class.should == GollumRails::Adapters::Gollum::Page
|
13
|
+
end
|
14
|
+
it "should test the Committer class connector" do
|
15
|
+
@class.committer_class.should == GollumRails::Adapters::Gollum::Committer
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe GollumRails::Adapters::Gollum::Page do
|
3
|
+
before(:each) do
|
4
|
+
@commit = {
|
5
|
+
:message => 'page action',
|
6
|
+
:name => 'The Mosny',
|
7
|
+
:email => 'mosny@zyg.li'
|
8
|
+
}
|
9
|
+
|
10
|
+
@location = "#{File.dirname(__FILE__)}/../../../utils/wiki.git"
|
11
|
+
@repo = Grit::Repo.init_bare @location
|
12
|
+
@wiki = GollumRails::Adapters::Gollum::Wiki.new @repo
|
13
|
+
@page = GollumRails::Adapters::Gollum::Page.new
|
14
|
+
end
|
15
|
+
it "should initialize the correct wiki" do
|
16
|
+
location = "#{File.dirname(__FILE__)}/../../../utils/wiki.git"
|
17
|
+
repo = Grit::Repo.init_bare location
|
18
|
+
wiki = GollumRails::Adapters::Gollum::Wiki.new repo
|
19
|
+
page = GollumRails::Adapters::Gollum::Page.new
|
20
|
+
page.wiki.should be_instance_of Gollum::Wiki
|
21
|
+
end
|
22
|
+
it "should create a new page" do
|
23
|
+
location = "#{File.dirname(__FILE__)}/../../../utils/wiki.git"
|
24
|
+
repo = Grit::Repo.init_bare location
|
25
|
+
wiki = GollumRails::Adapters::Gollum::Wiki.new repo
|
26
|
+
page = GollumRails::Adapters::Gollum::Page.new
|
27
|
+
page.new_page("testpage", "content",:markdown, @commit ).should be_instance_of Gollum::Page
|
28
|
+
page.delete_page(@commit)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should delete an existing page" do
|
32
|
+
page = @page.new_page 'testpage', 'content', :markdown, @commit
|
33
|
+
@page.delete_page(@commit,page).should be_instance_of String
|
34
|
+
|
35
|
+
@page.new_page 'testpage', 'content', :markdown, @commit
|
36
|
+
@page.delete_page(@commit).should be_instance_of String
|
37
|
+
end
|
38
|
+
it "should update an existing page" do
|
39
|
+
@page.new_page 'testpage', 'content', :markdown, @commit
|
40
|
+
page = {}
|
41
|
+
page[:name] = 'test'
|
42
|
+
page[:format] = :markdown
|
43
|
+
page[:content] = "content"
|
44
|
+
@page.update_page(page, @commit)
|
45
|
+
|
46
|
+
page = []
|
47
|
+
expect{@page.update_page(page, @commit)}.to raise_error GollumRails::Adapters::Gollum::Error
|
48
|
+
|
49
|
+
page = {}
|
50
|
+
page[:content] = "test"
|
51
|
+
@page.update_page(page, @commit).raw_data.should == page[:content]
|
52
|
+
|
53
|
+
page = {}
|
54
|
+
page[:name] = "test"
|
55
|
+
@page.update_page(page, @commit).name.should == page[:name]
|
56
|
+
|
57
|
+
page = {}
|
58
|
+
page[:format] = :wiki
|
59
|
+
@page.update_page(page, @commit).format.should == :mediawiki
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
@page.delete_page(@commit)
|
64
|
+
end
|
65
|
+
it "should find a page" do
|
66
|
+
@page.new_page 'content_page', 'content', :markdown, @commit
|
67
|
+
|
68
|
+
@page.find_page("content_page")
|
69
|
+
@page.delete_page(@commit)
|
70
|
+
end
|
71
|
+
it "should test the commit methods" do
|
72
|
+
@page.new_page 'content_page', 'content', :markdown, @commit
|
73
|
+
@page.page_last_edited_date.should be_instance_of Time
|
74
|
+
@page.page_created.should be_instance_of Time
|
75
|
+
@page.page_last_commit.should be_instance_of Grit::Commit
|
76
|
+
@page.page_commit(@page.page.versions.first.id).should be_instance_of Grit::Commit
|
77
|
+
@page.page_commit_date(@page.page.versions.first.id).should be_instance_of Time
|
78
|
+
@page.page_first_commit.should be_instance_of Grit::Commit
|
79
|
+
@page.delete_page(@commit)
|
80
|
+
end
|
81
|
+
it "should test the error throwing" do
|
82
|
+
expect{@page.page_last_commit}.to raise_error GollumRails::Adapters::Gollum::Error
|
83
|
+
expect{@page.page_first_commit}.to raise_error GollumRails::Adapters::Gollum::Error
|
84
|
+
expect{@page.page_last_edited_date}.to raise_error GollumRails::Adapters::Gollum::Error
|
85
|
+
expect{@page.page_created}.to raise_error GollumRails::Adapters::Gollum::Error
|
86
|
+
expect{@page.page_commit(1)}.to raise_error GollumRails::Adapters::Gollum::Error
|
87
|
+
expect{@page.page_commit_date(1)}.to raise_error GollumRails::Adapters::Gollum::Error
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'grit'
|
3
|
+
|
4
|
+
describe GollumRails::Adapters::Gollum::Wiki do
|
5
|
+
before(:each) do
|
6
|
+
@location = "#{File.dirname(__FILE__)}/../../../utils/wiki.git"
|
7
|
+
@repo = Grit::Repo.init_bare @location
|
8
|
+
@wiki = GollumRails::Adapters::Gollum::Wiki.new @repo
|
9
|
+
end
|
10
|
+
it "should test initializer" do
|
11
|
+
wiki = GollumRails::Adapters::Gollum::Wiki.new @location
|
12
|
+
@wiki.git.should == @repo
|
13
|
+
wiki.git.should be_instance_of(String)
|
14
|
+
wiki.git.should == @location
|
15
|
+
end
|
16
|
+
it "should test the creation of a new wiki" do
|
17
|
+
wiki = GollumRails::Adapters::Gollum::Wiki.wiki @repo
|
18
|
+
wiki.git.should == @repo
|
19
|
+
wiki = GollumRails::Adapters::Gollum::Wiki.wiki @location
|
20
|
+
wiki.git.should == @location
|
21
|
+
GollumRails::Adapters::Gollum::Connector.wiki_class.should be_instance_of(::Gollum::Wiki)
|
22
|
+
end
|
23
|
+
it "should test the error throwing and forwarding" do
|
24
|
+
expect{GollumRails::Adapters::Gollum::Wiki.write_page}.to raise_error ArgumentError
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ::Hash do
|
4
|
+
before(:each) do
|
5
|
+
@hash_a = {:a => "b", :b => "c"}
|
6
|
+
@hash_b = {a: "b", b: "c"}
|
7
|
+
end
|
8
|
+
it "should initialize a new hash" do
|
9
|
+
@hash_a.should be_instance_of(Hash)
|
10
|
+
@hash_b.should be_instance_of(Hash)
|
11
|
+
@hash_b.should == @hash_a
|
12
|
+
@hash_b.a.should == @hash_b[:a]
|
13
|
+
@hash_b.b.should == @hash_b[:b]
|
14
|
+
@hash_b.a.should == @hash_a.a
|
15
|
+
@hash_b.b.should == @hash_a.b
|
16
|
+
end
|
17
|
+
it "should change the value by method missing" do
|
18
|
+
|
19
|
+
@hash_c = {:hooh => "c", :tripple => {:d => "d"}}
|
20
|
+
@hash_d = Hash.new
|
21
|
+
expect{@hash_d.x}.to raise_error
|
22
|
+
#@hash_a.d.to_s.should == "{ d: 'd', x: 'Hash.new' }"
|
23
|
+
#@hash_a.d.should be_instance_of(Hash)
|
24
|
+
#puts @hash_a.d
|
25
|
+
#expect{@hash_a.hash = {d:"d"}}.to be_equal Hash['{:a=>"b", :b=>"c", "b"=>[3], :d=>"d"}']
|
26
|
+
#puts @hash_a
|
27
|
+
#@hash_a.a = "other"
|
28
|
+
#puts @hash_a
|
29
|
+
#expect{@hash_a.a = "other"}.to be_equal "other"
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Gollum Page" do
|
4
|
+
before(:each) do
|
5
|
+
@commit = {
|
6
|
+
:name => "flo",
|
7
|
+
:message => "commit",
|
8
|
+
:email => "mosny@zyg.li"
|
9
|
+
}
|
10
|
+
@call = {
|
11
|
+
:name => "Goole",
|
12
|
+
:content => "content data",
|
13
|
+
:commit => @commit,
|
14
|
+
:format => :markdown
|
15
|
+
}
|
16
|
+
end
|
17
|
+
describe GollumRails::Page do
|
18
|
+
class RailsModel < GollumRails::Page
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should test the creation of a page" do
|
24
|
+
rr = RailsModel.new(@call)
|
25
|
+
rr.save.should be_instance_of Gollum::Page
|
26
|
+
rr.save!.should be_instance_of Gollum::Page
|
27
|
+
RailsModel.create(@call)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should test the update of a page" do
|
31
|
+
rr = RailsModel.new @call
|
32
|
+
cc = rr.save.should be_instance_of Gollum::Page
|
33
|
+
rr.update_attributes({:name => "google", :format => :wiki}).should be_instance_of Gollum::Page
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should test the deletion of a page" do
|
37
|
+
rr = RailsModel.new @call
|
38
|
+
cc = rr.save.should be_instance_of Gollum::Page
|
39
|
+
rr.delete.should be_instance_of String
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should test the finding of a page" do
|
43
|
+
RailsModel.find('google').should be_instance_of Gollum::Page
|
44
|
+
|
45
|
+
#invalid input
|
46
|
+
RailsModel.find('<script type="text/javascript">alert(123);</script>').should be_nil
|
47
|
+
end
|
48
|
+
it "should test the preview" do
|
49
|
+
rr = RailsModel.new :content => "# content", :name => "somepage"
|
50
|
+
100.times do
|
51
|
+
rr.preview.should include("<h1>content<a class=\"anchor\" id=\"content\" href=\"#content\"></a></h1>")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should test exception methods" do
|
56
|
+
create = RailsModel.create! @call
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should test the supported formats" do
|
60
|
+
RailsModel.format_supported?('ascii').should be_true
|
61
|
+
RailsModel.format_supported?('markdown').should be_true
|
62
|
+
RailsModel.format_supported?('github-markdown').should be_true
|
63
|
+
RailsModel.format_supported?('rdoc').should be_true
|
64
|
+
RailsModel.format_supported?('org').should be_true
|
65
|
+
RailsModel.format_supported?('pod').should be_true
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should test getters" do
|
69
|
+
rr = RailsModel.new @call
|
70
|
+
rr.name.should == "Goole"
|
71
|
+
rr.content.should == "content data"
|
72
|
+
rr.commit.should be_instance_of Hash
|
73
|
+
rr.commit.should == @commit
|
74
|
+
rr.format.should == :markdown
|
75
|
+
rr.save
|
76
|
+
rr.page.should be_instance_of GollumRails::Adapters::Gollum::Page
|
77
|
+
end
|
78
|
+
it "should test setters" do
|
79
|
+
rr = RailsModel.new
|
80
|
+
rr.name=("google").should == "google"
|
81
|
+
rr.commit=(@commit).should == @commit
|
82
|
+
rr.content=("content").should == "content"
|
83
|
+
rr.format=(:markdown).should == :markdown
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
it "should test find or initialize" do
|
88
|
+
rr = RailsModel.new @call
|
89
|
+
rr.save
|
90
|
+
RailsModel.find_or_initialize_by_name(@call[:name], @commit).should be_instance_of Gollum::Page
|
91
|
+
end
|
92
|
+
end
|
93
|
+
describe "callbacks" do
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
it "should test the callback functions" do
|
98
|
+
|
99
|
+
class SaveCallback
|
100
|
+
def self.before_save( obj )
|
101
|
+
obj.name.should == "Goole"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
class CallbackTest < GollumRails::Page
|
107
|
+
|
108
|
+
before_save ::SaveCallback
|
109
|
+
after_save :after_save
|
110
|
+
after_delete :after_delete
|
111
|
+
before_delete :before_delete
|
112
|
+
before_update :before_update
|
113
|
+
after_update :after_update
|
114
|
+
|
115
|
+
def after_save
|
116
|
+
@name.should == "Goole"
|
117
|
+
end
|
118
|
+
def before_update
|
119
|
+
@name.should == "Goole"
|
120
|
+
end
|
121
|
+
|
122
|
+
def after_update
|
123
|
+
@name.should == "Goole"
|
124
|
+
end
|
125
|
+
|
126
|
+
def before_delete
|
127
|
+
@name.should == "Goole"
|
128
|
+
end
|
129
|
+
|
130
|
+
def after_delete
|
131
|
+
@name.should == "Goole"
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
test = CallbackTest.new @call
|
137
|
+
test.persisted?.should be_false
|
138
|
+
test.save
|
139
|
+
test.delete @commit
|
140
|
+
test.save
|
141
|
+
test.update_attributes @call
|
142
|
+
test.persisted?.should be_true
|
143
|
+
end
|
144
|
+
end
|
145
|
+
describe "rails extension" do
|
146
|
+
it "should test fetch_all" do
|
147
|
+
GollumRails::Page.all.length.should == 2
|
148
|
+
GollumRails::Page.find_all.length.should == 2
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
describe "testing validation" do
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
it "should test the basic validation" do
|
157
|
+
class Callbackt < GollumRails::Page
|
158
|
+
validates_presence_of :name
|
159
|
+
end
|
160
|
+
cla = Callbackt.new @call
|
161
|
+
cla.valid?.should be_true
|
162
|
+
end
|
163
|
+
class SugarBaby < GollumRails::Page
|
164
|
+
validates_presence_of :name
|
165
|
+
validates_length_of :name, :minimum => 20
|
166
|
+
validates_length_of :format, :maximum => 14
|
167
|
+
end
|
168
|
+
it "should test string validation" do
|
169
|
+
@call[:name] = "das ist zu lang"*10
|
170
|
+
cla = SugarBaby.new @call
|
171
|
+
cla.valid?.should be_true
|
172
|
+
end
|
173
|
+
it "should test the presence validator" do
|
174
|
+
@call[:name] = [ ]
|
175
|
+
bla = SugarBaby.new @call
|
176
|
+
bla.valid?.should be_false
|
177
|
+
end
|
178
|
+
it "should test the length validator for name" do
|
179
|
+
@call[:name] = "das"
|
180
|
+
res = SugarBaby.new @call
|
181
|
+
res.valid?.should be_false
|
182
|
+
end
|
183
|
+
it "should test the length validator for format" do
|
184
|
+
@call[:format] = :toolongformatstringforvalidator
|
185
|
+
res = SugarBaby.new @call
|
186
|
+
res.valid?.should be_false
|
187
|
+
end
|
188
|
+
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
File without changes
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Setup testing
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'rails'
|
4
|
+
describe GollumRails::Setup do
|
5
|
+
it "should setup the application" do
|
6
|
+
GollumRails::Setup.build do |setup|
|
7
|
+
|
8
|
+
# => The repository path to the
|
9
|
+
#
|
10
|
+
#
|
11
|
+
setup.repository = '.'
|
12
|
+
|
13
|
+
#setup.wiki.use = :default
|
14
|
+
setup.startup=(true).should be_true
|
15
|
+
|
16
|
+
setup.repository = nil
|
17
|
+
expect{setup.startup=true}.to raise_error GollumRails::GollumInternalError
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
end
|
23
|
+
class Bla < GollumRails::Page
|
24
|
+
end
|
25
|
+
it "should test the disable behavior" do
|
26
|
+
GollumRails::Adapters::Gollum::Connector.enabled = false
|
27
|
+
|
28
|
+
committer = {
|
29
|
+
:name => "Flo",
|
30
|
+
:message => "no",
|
31
|
+
:email => "mosny@zyg.li"
|
32
|
+
}
|
33
|
+
|
34
|
+
expect{Bla.new :name => "Default page", :commit => committer, :content => "#title \n ##body", :format => :markdown}.to raise_error GollumRails::GollumInternalError
|
35
|
+
end
|
36
|
+
it "should test the applications config" do
|
37
|
+
GollumRails::Setup.build do |config|
|
38
|
+
config.repository = :application
|
39
|
+
|
40
|
+
expect{setup.startup=true}.to raise_error
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
File without changes
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
require 'gollum_rails'
|
8
|
+
|
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
|
+
|
21
|
+
RSpec.configure do |config|
|
22
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
23
|
+
|
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
|
+
config.before(:each) do
|
32
|
+
GollumRails::Adapters::Gollum::Connector.enabled = true
|
33
|
+
end
|
34
|
+
config.full_backtrace= false # save the console
|
35
|
+
config.color_enabled= true # save your eyes
|
36
|
+
config.formatter = :documentation
|
37
|
+
|
38
|
+
config.mock_with :rr
|
39
|
+
|
40
|
+
config.before(:each) do
|
41
|
+
end
|
42
|
+
|
43
|
+
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.0.
|
4
|
+
version: 1.0.1
|
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-04-
|
11
|
+
date: 2013-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -124,11 +124,25 @@ files:
|
|
124
124
|
- lib/gollum_rails/adapters/gollum/error.rb
|
125
125
|
- lib/gollum_rails/adapters/gollum/page.rb
|
126
126
|
- lib/gollum_rails/adapters/gollum/wiki.rb
|
127
|
-
- lib/gollum_rails/initializer.rb
|
128
127
|
- lib/gollum_rails/modules/hash.rb
|
129
128
|
- lib/gollum_rails/modules/loader.rb
|
130
129
|
- lib/gollum_rails/page.rb
|
131
130
|
- lib/gollum_rails/setup.rb
|
131
|
+
- spec/gollum_rails/adapters/activemodel/error_spec.rb
|
132
|
+
- spec/gollum_rails/adapters/activemodel/naming_spec.rb
|
133
|
+
- spec/gollum_rails/adapters/activemodel/validation_unused.rb
|
134
|
+
- spec/gollum_rails/adapters/gollum/committer_spec.rb
|
135
|
+
- spec/gollum_rails/adapters/gollum/connector_spec.rb
|
136
|
+
- spec/gollum_rails/adapters/gollum/error_spec.rb
|
137
|
+
- spec/gollum_rails/adapters/gollum/page_spec.rb
|
138
|
+
- spec/gollum_rails/adapters/gollum/wiki_spec.rb
|
139
|
+
- spec/gollum_rails/modules/hash_spec.rb
|
140
|
+
- spec/gollum_rails/page_spec.rb
|
141
|
+
- spec/gollum_rails/respository_spec.rb
|
142
|
+
- spec/gollum_rails/setup_spec.rb
|
143
|
+
- spec/gollum_rails/wiki_spec.rb
|
144
|
+
- spec/spec.opts
|
145
|
+
- spec/spec_helper.rb
|
132
146
|
homepage: http://gollum.zyg.li
|
133
147
|
licenses:
|
134
148
|
- AGPL
|