gollum_rails 0.0.8 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -7
- data/HISTORY.md +16 -2
- data/gollum_rails.gemspec +15 -13
- data/lib/gollum_rails.rb +1 -1
- data/lib/gollum_rails/adapters/activemodel.rb +4 -2
- data/lib/gollum_rails/page.rb +12 -38
- metadata +9 -37
- data/examples/rails/initializer.rb +0 -0
- data/lib/gollum_rails/adapters/activemodel/validation.rb +0 -188
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09f7ee2859734417d3752763d1c3c1b3c162a8df
|
4
|
+
data.tar.gz: b69cae667fa9c8ec7c81215133ca1062e741e76a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3be4a36dd812402751dad7cdbdf2fe63fe4be10c11f3963ab8c20d470651184a2283c181439141cc101cf4428f89d4696dce2e452e1edb4e85a91b160fda3a78
|
7
|
+
data.tar.gz: 68a520d6a40e235ed6fff4a37cd9a4b3bc78282c61bbc1b137b5d5b05538f05a40fde1af8460e63e1d378879515190121e9d575c25c8f9927f2490b9205dc932
|
data/Gemfile.lock
CHANGED
@@ -10,11 +10,9 @@ GIT
|
|
10
10
|
PATH
|
11
11
|
remote: .
|
12
12
|
specs:
|
13
|
-
gollum_rails (0.0
|
13
|
+
gollum_rails (1.0.0)
|
14
14
|
activemodel (~> 3.2.13)
|
15
|
-
|
16
|
-
gollum-lib (~> 0.0.1)
|
17
|
-
rack (~> 1.4.5)
|
15
|
+
gollum-lib (~> 1.0.0)
|
18
16
|
|
19
17
|
GEM
|
20
18
|
remote: https://rubygems.org/
|
@@ -49,7 +47,7 @@ GEM
|
|
49
47
|
arel (3.0.2)
|
50
48
|
builder (3.0.4)
|
51
49
|
colorize (0.5.8)
|
52
|
-
coveralls (0.6.
|
50
|
+
coveralls (0.6.4)
|
53
51
|
colorize
|
54
52
|
multi_json (~> 1.3)
|
55
53
|
rest-client
|
@@ -59,11 +57,11 @@ GEM
|
|
59
57
|
erubis (2.7.0)
|
60
58
|
github-markdown (0.5.3)
|
61
59
|
github-markup (0.7.5)
|
62
|
-
gollum-lib (0.0
|
60
|
+
gollum-lib (1.0.0)
|
63
61
|
github-markdown (~> 0.5.3)
|
64
62
|
github-markup (>= 0.7.5, < 1.0.0)
|
65
63
|
grit (~> 2.5.0)
|
66
|
-
nokogiri (~> 1.5.
|
64
|
+
nokogiri (~> 1.5.9)
|
67
65
|
pygments.rb (~> 0.4.2)
|
68
66
|
sanitize (~> 2.0.3)
|
69
67
|
stringex (~> 1.5.1)
|
data/HISTORY.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
|
-
# 0.0
|
2
|
-
*
|
1
|
+
# 1.0.0 3th April 2013
|
2
|
+
* added validators
|
3
|
+
* removed unused gems
|
4
|
+
* updated documentation
|
5
|
+
* removed unused middleware
|
6
|
+
* improved code coverage
|
7
|
+
|
8
|
+
# 0.0.8 1th April 2013
|
9
|
+
* updated documentation
|
10
|
+
* removed unused code
|
11
|
+
|
12
|
+
# 0.0.7 1th April 2013
|
13
|
+
* improved installation instructions
|
14
|
+
* improved performance
|
15
|
+
|
16
|
+
# 0.0.6 1th April 2013
|
3
17
|
* missing generators added
|
4
18
|
|
5
19
|
# 0.0.5 31th March 2013
|
data/gollum_rails.gemspec
CHANGED
@@ -4,17 +4,17 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.name = 'gollum_rails'
|
5
5
|
s.rubyforge_project = s.name
|
6
6
|
|
7
|
-
s.version = '0.0
|
7
|
+
s.version = '1.0.0'
|
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'
|
11
11
|
#File.read(File.join(File.dirname(__FILE__), 'README.md'))
|
12
12
|
|
13
13
|
s.add_dependency 'activemodel', '~> 3.2.13'
|
14
|
-
s.add_dependency 'gollum-lib', '~> 0.0
|
14
|
+
s.add_dependency 'gollum-lib', '~> 1.0.0'
|
15
15
|
#s.add_dependency 'grit', '~> 2.5.0'
|
16
|
-
s.add_dependency 'builder', '~> 3.0.0'
|
17
|
-
s.add_dependency 'rack', '~> 1.4.5'
|
16
|
+
#s.add_dependency 'builder', '~> 3.0.0'
|
17
|
+
#s.add_dependency 'rack', '~> 1.4.5'
|
18
18
|
|
19
19
|
s.add_development_dependency 'rspec', '~> 2.13.0'
|
20
20
|
s.add_development_dependency 'rails', '~> 3.2.13'
|
@@ -36,7 +36,6 @@ Gem::Specification.new do |s|
|
|
36
36
|
LICENSE
|
37
37
|
README.md
|
38
38
|
Rakefile
|
39
|
-
examples/rails/initializer.rb
|
40
39
|
gollum_rails.gemspec
|
41
40
|
lib/generators/gollum_rails/install/install_generator.rb
|
42
41
|
lib/generators/gollum_rails/install/templates/gollum_initializer.rb
|
@@ -48,7 +47,6 @@ Gem::Specification.new do |s|
|
|
48
47
|
lib/gollum_rails/adapters/activemodel/boolean.rb
|
49
48
|
lib/gollum_rails/adapters/activemodel/error.rb
|
50
49
|
lib/gollum_rails/adapters/activemodel/naming.rb
|
51
|
-
lib/gollum_rails/adapters/activemodel/validation.rb
|
52
50
|
lib/gollum_rails/adapters/gollum.rb
|
53
51
|
lib/gollum_rails/adapters/gollum/.gitkeep
|
54
52
|
lib/gollum_rails/adapters/gollum/committer.rb
|
@@ -65,12 +63,16 @@ Gem::Specification.new do |s|
|
|
65
63
|
|
66
64
|
|
67
65
|
s.require_paths = %w[lib]
|
68
|
-
s.post_install_message =
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
66
|
+
s.post_install_message = <<-END
|
67
|
+
Important: \n
|
68
|
+
**********************************************
|
69
|
+
To use the installer just run the following command:
|
70
|
+
\trails g gollum_rails:install\n
|
71
|
+
To generate a new Page model just run:
|
72
|
+
\trails g gollum_rails:model MODEL_NAME\n
|
73
|
+
To install an additional parsing language run:
|
74
|
+
rails g gollum_rails:language LANGUAGE
|
75
|
+
**********************************************"
|
76
|
+
END
|
75
77
|
end
|
76
78
|
|
data/lib/gollum_rails.rb
CHANGED
@@ -34,7 +34,7 @@ module GollumRails
|
|
34
34
|
module ActiveModel
|
35
35
|
|
36
36
|
# connector version
|
37
|
-
VERSION="1.
|
37
|
+
VERSION="1.10.0"
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -42,4 +42,6 @@ end
|
|
42
42
|
require File.expand_path '../activemodel/boolean', __FILE__
|
43
43
|
require File.expand_path '../activemodel/naming', __FILE__
|
44
44
|
require File.expand_path '../activemodel/error', __FILE__
|
45
|
-
|
45
|
+
|
46
|
+
# removed in 0.0.8
|
47
|
+
#require File.expand_path '../activemodel/validation', __FILE__
|
data/lib/gollum_rails/page.rb
CHANGED
@@ -14,6 +14,7 @@ module GollumRails
|
|
14
14
|
#
|
15
15
|
class Page
|
16
16
|
extend ::ActiveModel::Callbacks
|
17
|
+
include ::ActiveModel::Validations
|
17
18
|
include ::ActiveModel::Conversion
|
18
19
|
extend ::ActiveModel::Naming
|
19
20
|
|
@@ -44,8 +45,7 @@ module GollumRails
|
|
44
45
|
# commit must be given to perform any page action!
|
45
46
|
def initialize(attrs = {})
|
46
47
|
if Adapters::Gollum::Connector.enabled
|
47
|
-
attrs.each{|k,v| self.
|
48
|
-
attrs.each{|k,v| self.class.validator.instance_variable_set("@#{k}", v)}
|
48
|
+
attrs.each{|k,v| self.public_send("#{k}=",v)} if attrs
|
49
49
|
else
|
50
50
|
raise GollumInternalError, 'gollum_rails is not enabled!'
|
51
51
|
end
|
@@ -58,11 +58,11 @@ module GollumRails
|
|
58
58
|
# Sets the wiki instance
|
59
59
|
attr_writer :wiki
|
60
60
|
|
61
|
-
# Sets the pages name
|
62
|
-
|
61
|
+
# Gets / Sets the pages name
|
62
|
+
attr_accessor :name
|
63
63
|
|
64
|
-
# Sets the contents content
|
65
|
-
|
64
|
+
# Gets / Sets the contents content
|
65
|
+
attr_accessor :content
|
66
66
|
|
67
67
|
# Sets the commit Hash
|
68
68
|
attr_writer :commit
|
@@ -82,16 +82,6 @@ module GollumRails
|
|
82
82
|
@wiki || Adapters::Gollum::Connector.wiki_class
|
83
83
|
end
|
84
84
|
|
85
|
-
# Gets the pages' name
|
86
|
-
def name
|
87
|
-
@name || @gollum_page.name
|
88
|
-
end
|
89
|
-
|
90
|
-
# Gets the raw content of the current page
|
91
|
-
def content
|
92
|
-
@content || @gollum_page.raw_content
|
93
|
-
end
|
94
|
-
|
95
85
|
# Need to implement the Committer connector (forgot it completely)
|
96
86
|
# Gets the commit Hash from current object
|
97
87
|
def commit
|
@@ -100,7 +90,7 @@ module GollumRails
|
|
100
90
|
|
101
91
|
# Gets the pages format
|
102
92
|
def format
|
103
|
-
|
93
|
+
@format.to_sym
|
104
94
|
end
|
105
95
|
|
106
96
|
# Gets the validator
|
@@ -212,6 +202,11 @@ module GollumRails
|
|
212
202
|
end
|
213
203
|
end
|
214
204
|
|
205
|
+
# checks if entry already has been saved
|
206
|
+
#
|
207
|
+
#
|
208
|
+
def persisted?
|
209
|
+
end
|
215
210
|
# Previews the page - Mostly used if you want to see what you do before saving
|
216
211
|
#
|
217
212
|
# This is an extremely performant method!
|
@@ -238,27 +233,6 @@ module GollumRails
|
|
238
233
|
page.find_page name
|
239
234
|
end
|
240
235
|
|
241
|
-
# todo
|
242
|
-
def valid?
|
243
|
-
self.class.validate self,true
|
244
|
-
end
|
245
|
-
|
246
|
-
# Validation functions
|
247
|
-
#
|
248
|
-
# context - The current config
|
249
|
-
# check - check now
|
250
|
-
# block - Validations
|
251
|
-
#
|
252
|
-
# Returns true or raises an exception
|
253
|
-
def self.validate(context=nil,check=false,&block)
|
254
|
-
#if block
|
255
|
-
# @@gollum_page = block
|
256
|
-
#end
|
257
|
-
#if check
|
258
|
-
# @@gollum_page.call context.class.validator
|
259
|
-
#end
|
260
|
-
end
|
261
|
-
|
262
236
|
# Finds an existing page or creates it
|
263
237
|
#
|
264
238
|
# name - The name
|
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: 0.0
|
4
|
+
version: 1.0.0
|
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-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -30,42 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0
|
33
|
+
version: 1.0.0
|
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: 0.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: builder
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 3.0.0
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 3.0.0
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rack
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.4.5
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.4.5
|
40
|
+
version: 1.0.0
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: rspec
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,7 +107,6 @@ files:
|
|
135
107
|
- LICENSE
|
136
108
|
- README.md
|
137
109
|
- Rakefile
|
138
|
-
- examples/rails/initializer.rb
|
139
110
|
- gollum_rails.gemspec
|
140
111
|
- lib/generators/gollum_rails/install/install_generator.rb
|
141
112
|
- lib/generators/gollum_rails/install/templates/gollum_initializer.rb
|
@@ -147,7 +118,6 @@ files:
|
|
147
118
|
- lib/gollum_rails/adapters/activemodel/boolean.rb
|
148
119
|
- lib/gollum_rails/adapters/activemodel/error.rb
|
149
120
|
- lib/gollum_rails/adapters/activemodel/naming.rb
|
150
|
-
- lib/gollum_rails/adapters/activemodel/validation.rb
|
151
121
|
- lib/gollum_rails/adapters/gollum.rb
|
152
122
|
- lib/gollum_rails/adapters/gollum/.gitkeep
|
153
123
|
- lib/gollum_rails/adapters/gollum/committer.rb
|
@@ -163,9 +133,11 @@ homepage: http://gollum.zyg.li
|
|
163
133
|
licenses:
|
164
134
|
- AGPL
|
165
135
|
metadata: {}
|
166
|
-
post_install_message: "Important: \n\n**********************************************\n
|
167
|
-
use the
|
168
|
-
generate a new Page model just run:\n\
|
136
|
+
post_install_message: " Important: \n\n **********************************************\n
|
137
|
+
\ To use the installer just run the following command:\n \trails g gollum_rails:install\n\n
|
138
|
+
\ To generate a new Page model just run:\n \trails g gollum_rails:model MODEL_NAME\n\n
|
139
|
+
\ To install an additional parsing language run:\n rails g gollum_rails:language
|
140
|
+
LANGUAGE\n **********************************************\"\n"
|
169
141
|
rdoc_options: []
|
170
142
|
require_paths:
|
171
143
|
- lib
|
File without changes
|
@@ -1,188 +0,0 @@
|
|
1
|
-
module GollumRails
|
2
|
-
module Adapters
|
3
|
-
module ActiveModel
|
4
|
-
|
5
|
-
# General Validation Class including validations
|
6
|
-
class Validation
|
7
|
-
include ::ActiveModel::Validations
|
8
|
-
|
9
|
-
#########
|
10
|
-
protected
|
11
|
-
#########
|
12
|
-
|
13
|
-
# Sets the variable, used to validate
|
14
|
-
attr_writer :variable
|
15
|
-
|
16
|
-
# Sets the Filter
|
17
|
-
attr_accessor :filter
|
18
|
-
|
19
|
-
# Sets all instance errors to this variable
|
20
|
-
attr_writer :error
|
21
|
-
|
22
|
-
######
|
23
|
-
public
|
24
|
-
######
|
25
|
-
|
26
|
-
# Gets the variable, used to validate
|
27
|
-
attr_reader :variable
|
28
|
-
|
29
|
-
# Gets the error messages
|
30
|
-
attr_reader :error
|
31
|
-
|
32
|
-
# Checks for errors and returns either true or false
|
33
|
-
#
|
34
|
-
# Examples:
|
35
|
-
# @validator.valid?
|
36
|
-
# # => true
|
37
|
-
# or
|
38
|
-
# # => false
|
39
|
-
#
|
40
|
-
def valid?(errors = {})
|
41
|
-
super
|
42
|
-
return true if self.errors.messages == Hash.new and errors == Hash.new
|
43
|
-
self.error = errors
|
44
|
-
return false
|
45
|
-
end
|
46
|
-
|
47
|
-
# Initializes the Validator
|
48
|
-
# You can pass in a block with validators, which will be used to validate given attributes
|
49
|
-
#
|
50
|
-
# Blocks look like:
|
51
|
-
#
|
52
|
-
# "#{variable} : type=String : max=200"
|
53
|
-
# "#{textvariable} : type=Hash"
|
54
|
-
# "#{integer} : min=100 : max=200"
|
55
|
-
#
|
56
|
-
# They have always the following format:
|
57
|
-
#
|
58
|
-
# KEY=VALUE or KEY!VALUE
|
59
|
-
#
|
60
|
-
# key=value explains itself. It validates the variable <b>variable</b> with the given <b>key<b> validator
|
61
|
-
# and checks if it matches the given <b>value</b>
|
62
|
-
#
|
63
|
-
# key!value is the negociation of key=value
|
64
|
-
#
|
65
|
-
#
|
66
|
-
# The following keys are currently available:
|
67
|
-
# * type
|
68
|
-
# * max
|
69
|
-
# * present
|
70
|
-
# * min
|
71
|
-
#
|
72
|
-
# Following:
|
73
|
-
# * contribute yourself
|
74
|
-
#
|
75
|
-
# Usage:
|
76
|
-
# variable = "This is a simple test"
|
77
|
-
# validator = GollumRails::Adapters::ActiveModel::Validation.new
|
78
|
-
# validator.validate! do |a|
|
79
|
-
# a.validate(variable, "type=String,max=100,present=true")
|
80
|
-
# end
|
81
|
-
# validator.valid?
|
82
|
-
# # => true
|
83
|
-
#
|
84
|
-
# Params:
|
85
|
-
# block - Block to use
|
86
|
-
#
|
87
|
-
# Returns:
|
88
|
-
def validate(&block)
|
89
|
-
bla = block.call(self)
|
90
|
-
end
|
91
|
-
|
92
|
-
|
93
|
-
# Aliasing test method
|
94
|
-
alias_method :validate!, :test
|
95
|
-
|
96
|
-
# Tests given variable for conditions
|
97
|
-
#
|
98
|
-
# Params:
|
99
|
-
# variable - variable to validate
|
100
|
-
# statement - validation statement, seperated by coma
|
101
|
-
#
|
102
|
-
#
|
103
|
-
def test(variable,statement)
|
104
|
-
validation = {}
|
105
|
-
if statement.include? ',' and statement.include? '='
|
106
|
-
statement.split(',').each{|equalized|
|
107
|
-
key,value = split_equalized_string equalized
|
108
|
-
validation[key.to_s.downcase.to_sym] = value if not key.nil?
|
109
|
-
}
|
110
|
-
elsif statement.include? '='
|
111
|
-
key,value = split_equalized_string statement
|
112
|
-
validation[key.to_s.downcase.to_sym] = value if not key.nil?
|
113
|
-
else
|
114
|
-
raise Error, 'Syntax error! '
|
115
|
-
end
|
116
|
-
self.instance_variable_set("@variable", variable)
|
117
|
-
|
118
|
-
validation.each_with_index do |k|
|
119
|
-
if k.first.to_s.match /^type$/i
|
120
|
-
code = <<-END
|
121
|
-
self.singleton_class.class_exec do attr_accessor :type end
|
122
|
-
self.instance_variable_set("@type", "#{k[1]}")
|
123
|
-
validates_with ValidateType, :fields => [:variable]
|
124
|
-
END
|
125
|
-
elsif k.first.to_s.match /^(present|presence|pres)$/i
|
126
|
-
code = <<-END
|
127
|
-
validates_presence_of :variable
|
128
|
-
END
|
129
|
-
elsif k.first.to_s.match /^(min|max)$/i
|
130
|
-
code = <<-END
|
131
|
-
validates_length_of :variable, :#{k.first.to_s}imum => #{k[1].to_i}
|
132
|
-
END
|
133
|
-
else
|
134
|
-
puts <<-END
|
135
|
-
WARNING: no validator matches! This will cause an Error in the next release
|
136
|
-
END
|
137
|
-
next
|
138
|
-
end
|
139
|
-
self.instance_eval(code) if code
|
140
|
-
end
|
141
|
-
errors = self.errors.messages
|
142
|
-
self.errors.instance_variable_set("@messages", {})
|
143
|
-
valid? errors
|
144
|
-
end
|
145
|
-
|
146
|
-
#######
|
147
|
-
private
|
148
|
-
#######
|
149
|
-
|
150
|
-
# Splits given by "="
|
151
|
-
#
|
152
|
-
# string - String to be split
|
153
|
-
#
|
154
|
-
# Returns splitted string or raise an error
|
155
|
-
def split_equalized_string(string)
|
156
|
-
if string.match /\w+\=(\w+|\d+)/i
|
157
|
-
return string.split(/\=/,2)
|
158
|
-
else
|
159
|
-
raise Error, <<-END
|
160
|
-
Syntax error in given String #{string}. Equal sign is missing
|
161
|
-
END
|
162
|
-
end
|
163
|
-
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
|
168
|
-
# Validation helper for type:
|
169
|
-
#
|
170
|
-
# <b>Type</b>
|
171
|
-
class ValidateType < ::ActiveModel::Validator
|
172
|
-
|
173
|
-
# Validate given Data with given validation object
|
174
|
-
#
|
175
|
-
# sets error or returns true
|
176
|
-
def validate(record)
|
177
|
-
if record.type.match(/^\w+$/i)
|
178
|
-
name = eval "#{record.type.to_s}"
|
179
|
-
return true if record.variable.is_a? name
|
180
|
-
record.errors.add :type, "not a kind of given class #{record.type}"
|
181
|
-
else
|
182
|
-
record.errors.add :type ,"invalid input detected"
|
183
|
-
end
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|