vidibus-permalink 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +3 -3
- data/README.rdoc +2 -1
- data/VERSION +1 -1
- data/app/models/permalink.rb +9 -9
- data/lib/vidibus/permalink/mongoid.rb +39 -19
- data/spec/permalink_spec.rb +8 -0
- data/spec/spec_helper.rb +6 -4
- data/spec/vidibus/permalink/dispatcher_spec.rb +4 -0
- data/spec/vidibus/permalink/mongoid_spec.rb +69 -27
- data/vidibus-permalink.gemspec +12 -21
- metadata +53 -66
- data/Gemfile.lock +0 -117
data/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source :rubygems
|
2
2
|
|
3
|
-
gem "rails", "~> 3.0
|
4
|
-
gem "mongoid", "~> 2.0
|
3
|
+
gem "rails", "~> 3.0"
|
4
|
+
gem "mongoid", "~> 2.0"
|
5
5
|
gem "vidibus-core_extensions"
|
6
6
|
gem "vidibus-uuid"
|
7
7
|
gem "vidibus-words"
|
@@ -9,7 +9,7 @@ gem "vidibus-words"
|
|
9
9
|
group :development do
|
10
10
|
gem "jeweler"
|
11
11
|
gem "rake"
|
12
|
-
gem "rspec", "~> 2
|
12
|
+
gem "rspec", "~> 2"
|
13
13
|
gem "rr"
|
14
14
|
gem "relevance-rcov"
|
15
15
|
end
|
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
=
|
1
|
+
= Vidibus::Permalink
|
2
2
|
|
3
3
|
This gem allows changeable permalinks. That may be an oxymoron, but it's really useful from a SEO perspective.
|
4
4
|
|
@@ -23,6 +23,7 @@ TODO: describe
|
|
23
23
|
|
24
24
|
* Add controller extension for automatic dispatching
|
25
25
|
* Limit length of permalinks
|
26
|
+
* Refactor codebase so that incrementation is not limited to Permalink class
|
26
27
|
|
27
28
|
|
28
29
|
== Ideas (for a separate gem)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/app/models/permalink.rb
CHANGED
@@ -35,7 +35,7 @@ class Permalink
|
|
35
35
|
linkable_class.constantize.where(:uuid => linkable_uuid).first
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
# Assigns given string as value.
|
40
40
|
# Sanitizes and increments string, if necessary.
|
41
41
|
def value=(string)
|
@@ -78,11 +78,18 @@ class Permalink
|
|
78
78
|
def for_value(value)
|
79
79
|
where(:value => sanitize(value))
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
# Returns a dispatcher object for given path.
|
83
83
|
def dispatch(path)
|
84
84
|
Vidibus::Permalink::Dispatcher.new(path)
|
85
85
|
end
|
86
|
+
|
87
|
+
# Sanitizes string: Remove stopwords and format as permalink.
|
88
|
+
# See Vidibus::CoreExtensions::String for details.
|
89
|
+
def sanitize(string)
|
90
|
+
return if string.blank?
|
91
|
+
remove_stopwords(string).permalink
|
92
|
+
end
|
86
93
|
end
|
87
94
|
|
88
95
|
protected
|
@@ -100,13 +107,6 @@ class Permalink
|
|
100
107
|
sanitized || string.permalink
|
101
108
|
end
|
102
109
|
|
103
|
-
# Sanitize string: Remove stopwords and format as permalink.
|
104
|
-
# See Vidibus::CoreExtensions::String for details.
|
105
|
-
def self.sanitize(string)
|
106
|
-
return if string.blank?
|
107
|
-
remove_stopwords(string).permalink
|
108
|
-
end
|
109
|
-
|
110
110
|
# Tries to remove stopwords from string.
|
111
111
|
# If the resulting string is blank, the original one will be returned.
|
112
112
|
# See Vidibus::Words for details.
|
@@ -6,9 +6,12 @@ module Vidibus
|
|
6
6
|
class PermalinkConfigurationError < StandardError; end
|
7
7
|
|
8
8
|
included do
|
9
|
-
field :permalink
|
9
|
+
field :permalink, :type => String
|
10
|
+
index :permalink
|
11
|
+
|
10
12
|
before_validation :set_permalink
|
11
13
|
validates :permalink, :presence => true
|
14
|
+
|
12
15
|
after_save :store_permalink_object
|
13
16
|
after_destroy :destroy_permalink_objects
|
14
17
|
end
|
@@ -19,52 +22,69 @@ module Vidibus
|
|
19
22
|
# Usage:
|
20
23
|
# permalink :some, :fields
|
21
24
|
def permalink(*args)
|
25
|
+
options = args.extract_options!
|
22
26
|
class_eval <<-EOS
|
23
|
-
def permalink_attributes
|
27
|
+
def self.permalink_attributes
|
24
28
|
#{args.inspect}
|
25
29
|
end
|
30
|
+
|
31
|
+
def self.permalink_options
|
32
|
+
#{options.inspect}
|
33
|
+
end
|
26
34
|
EOS
|
27
35
|
end
|
28
36
|
end
|
29
37
|
|
38
|
+
# Returns the defined permalink repository object.
|
39
|
+
def permalink_repository
|
40
|
+
@permalink_repository ||= (self.class.permalink_options[:repository] == false) ? nil : ::Permalink
|
41
|
+
end
|
42
|
+
|
30
43
|
# Returns the current permalink object.
|
31
44
|
def permalink_object
|
32
|
-
@permalink_object ||
|
45
|
+
@permalink_object || permalink_repository.for_linkable(self).where(:_current => true).first if permalink_repository
|
33
46
|
end
|
34
47
|
|
35
48
|
# Returns all permalink objects ordered by time of update.
|
36
49
|
def permalink_objects
|
37
|
-
|
50
|
+
permalink_repository.for_linkable(self).asc(:updated_at) if permalink_repository
|
38
51
|
end
|
39
52
|
|
40
|
-
|
53
|
+
private
|
41
54
|
|
42
55
|
# Initializes a new permalink object and sets permalink attribute.
|
43
56
|
def set_permalink
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
57
|
+
begin
|
58
|
+
attribute_names = self.class.permalink_attributes
|
59
|
+
rescue NoMethodError
|
60
|
+
raise PermalinkConfigurationError.new("#{self.class}.permalink_attributes have not been assigned! Use #{self.class}.permalink(:my_field) to set it up.")
|
61
|
+
end
|
62
|
+
|
63
|
+
changed = false
|
64
|
+
values = []
|
65
|
+
for a in attribute_names
|
66
|
+
changed = send("#{a}_changed?") unless changed == true
|
67
|
+
values << send(a)
|
68
|
+
end
|
69
|
+
return unless permalink.blank? or changed
|
70
|
+
value = values.join(" ")
|
71
|
+
if permalink_repository
|
72
|
+
@permalink_object = permalink_repository.for_linkable(self).for_value(value).first || permalink_repository.new(:value => value, :linkable => self)
|
55
73
|
self.permalink = @permalink_object.value
|
56
74
|
else
|
57
|
-
|
75
|
+
self.permalink = ::Permalink.sanitize(value)
|
58
76
|
end
|
59
77
|
end
|
60
78
|
|
61
79
|
# Stores current new permalink object or updates an existing one that matches.
|
62
80
|
def store_permalink_object
|
63
|
-
|
81
|
+
return unless @permalink_object
|
82
|
+
@permalink_object.updated_at = Time.now
|
83
|
+
@permalink_object.save!
|
64
84
|
end
|
65
85
|
|
66
86
|
def destroy_permalink_objects
|
67
|
-
|
87
|
+
permalink_repository.delete_all(:conditions => {:linkable_uuid => uuid}) if permalink_repository
|
68
88
|
end
|
69
89
|
end
|
70
90
|
end
|
data/spec/permalink_spec.rb
CHANGED
@@ -220,4 +220,12 @@ describe "Permalink" do
|
|
220
220
|
Permalink.dispatch("/something").should be_a(Vidibus::Permalink::Dispatcher)
|
221
221
|
end
|
222
222
|
end
|
223
|
+
|
224
|
+
describe ".sanitize" do
|
225
|
+
before {stub_stopwords(%w[its a])}
|
226
|
+
|
227
|
+
it "should return a sanitized string without stopwords" do
|
228
|
+
Permalink.sanitize("It's a beautiful day.").should eql("beautiful-day")
|
229
|
+
end
|
230
|
+
end
|
223
231
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -32,10 +32,12 @@ I18n.load_path += Dir[File.join('config', 'locales', '**', '*.{rb,yml}')]
|
|
32
32
|
|
33
33
|
# Helper for stubbing time. Define String to be set as Time.now.
|
34
34
|
# Usage:
|
35
|
-
# stub_time
|
36
|
-
# stub_time
|
35
|
+
# stub_time('01.01.2010 14:00')
|
36
|
+
# stub_time(2.days.ago)
|
37
|
+
#
|
37
38
|
def stub_time!(string = nil)
|
38
|
-
|
39
|
-
|
39
|
+
string ||= Time.now.to_s(:db)
|
40
|
+
now = Time.parse(string.to_s)
|
41
|
+
stub(Time).now {now}
|
40
42
|
now
|
41
43
|
end
|
@@ -139,6 +139,10 @@ describe "Vidibus::Permalink::Dispatcher" do
|
|
139
139
|
this = Vidibus::Permalink::Dispatcher.new("/something/new")
|
140
140
|
this.redirect_path.should be_nil
|
141
141
|
end
|
142
|
+
|
143
|
+
it "should not raise an error if no current permalink object is present" do
|
144
|
+
pending("this has to be solved!")
|
145
|
+
end
|
142
146
|
end
|
143
147
|
end
|
144
148
|
end
|
@@ -1,26 +1,23 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
class
|
3
|
+
class Base
|
4
4
|
include Mongoid::Document
|
5
5
|
include Vidibus::Uuid::Mongoid
|
6
6
|
include Vidibus::Permalink::Mongoid
|
7
|
+
end
|
8
|
+
|
9
|
+
class Model < Base
|
7
10
|
field :name
|
8
11
|
permalink :name
|
9
12
|
end
|
10
13
|
|
11
|
-
class Appointment
|
12
|
-
include Mongoid::Document
|
13
|
-
include Vidibus::Uuid::Mongoid
|
14
|
-
include Vidibus::Permalink::Mongoid
|
14
|
+
class Appointment < Base
|
15
15
|
field :reason
|
16
16
|
field :location
|
17
17
|
permalink :reason, :location
|
18
18
|
end
|
19
19
|
|
20
|
-
class Car
|
21
|
-
include Mongoid::Document
|
22
|
-
include Vidibus::Uuid::Mongoid
|
23
|
-
include Vidibus::Permalink::Mongoid
|
20
|
+
class Car < Base
|
24
21
|
field :make
|
25
22
|
end
|
26
23
|
|
@@ -29,7 +26,28 @@ describe "Vidibus::Permalink::Mongoid" do
|
|
29
26
|
let(:john) {Model.new(:name => "John Malkovich")}
|
30
27
|
let(:appointment) {Appointment.create(:location => "Bistro", :reason => "Lunch")}
|
31
28
|
|
32
|
-
describe "
|
29
|
+
describe "validation" do
|
30
|
+
it "should fail if permalink is blank" do
|
31
|
+
model = Model.new(:permalink => "")
|
32
|
+
model.should be_invalid
|
33
|
+
model.errors[:permalink].should have(1).error
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "destroying" do
|
38
|
+
it "should trigger deleting of all permalink objects with linkable" do
|
39
|
+
appointment.destroy
|
40
|
+
Permalink.all.to_a.should have(:no).permalinks
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should not delete permalink objects of other linkables" do
|
44
|
+
john.save
|
45
|
+
appointment.destroy
|
46
|
+
Permalink.all.to_a.should have(1).permalink
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "#permalink" do
|
33
51
|
it "should set permalink attribute before validation" do
|
34
52
|
john.valid?
|
35
53
|
john.permalink.should eql("john-malkovich")
|
@@ -89,26 +107,26 @@ describe "Vidibus::Permalink::Mongoid" do
|
|
89
107
|
it "should raise an error unless permalink attributes have been defined" do
|
90
108
|
expect {Car.create(:make => "Porsche")}.to raise_error(Car::PermalinkConfigurationError)
|
91
109
|
end
|
92
|
-
end
|
93
110
|
|
94
|
-
|
95
|
-
|
96
|
-
appointment.destroy
|
97
|
-
Permalink.all.to_a.should have(:no).permalinks
|
98
|
-
end
|
111
|
+
context "with :repository option set to false" do
|
112
|
+
before {Model.permalink(:name, :repository => false)}
|
99
113
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
114
|
+
it "should be proper" do
|
115
|
+
john = Model.create(:name => "John Malkovich")
|
116
|
+
john.permalink.should eql("john-malkovich")
|
117
|
+
end
|
106
118
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
119
|
+
it "should not be stored as permalink object when :repository option is set to false" do
|
120
|
+
Model.create(:name => "John Malkovich")
|
121
|
+
Permalink.all.should be_empty
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should be unique for model" do
|
125
|
+
pending "Allow incrementation for class that serves as repository."
|
126
|
+
Model.create(:name => "John Malkovich")
|
127
|
+
john = Model.create(:name => "John Malkovich")
|
128
|
+
john.permalink.should_not eql("john-malkovich")
|
129
|
+
end
|
112
130
|
end
|
113
131
|
end
|
114
132
|
|
@@ -144,4 +162,28 @@ describe "Vidibus::Permalink::Mongoid" do
|
|
144
162
|
appointment.permalink_objects.to_a.should have(1).permalink
|
145
163
|
end
|
146
164
|
end
|
165
|
+
|
166
|
+
describe "#permalink_repository" do
|
167
|
+
it "should default to Vidibus::Permalink" do
|
168
|
+
Car.permalink(:whatever)
|
169
|
+
Car.new.permalink_repository.should eql(Permalink)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should be nil if :repository option is set to false" do
|
173
|
+
Car.permalink(:whatever, :repository => false)
|
174
|
+
Car.new.permalink_repository.should be_nil
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
describe ".permalink" do
|
179
|
+
it "should set .permalink_attributes" do
|
180
|
+
Car.permalink(:whatever, :it, :takes)
|
181
|
+
Car.permalink_attributes.should eql([:whatever, :it, :takes])
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should set .permalink_options" do
|
185
|
+
Car.permalink(:whatever, :it, :takes, :repository => false)
|
186
|
+
Car.permalink_options.should eql({:repository => false})
|
187
|
+
end
|
188
|
+
end
|
147
189
|
end
|
data/vidibus-permalink.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vidibus-permalink}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andre Pankratz"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-05-09}
|
13
13
|
s.description = %q{Allows changeable permalinks (good for SEO).}
|
14
14
|
s.email = %q{andre@vidibus.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -21,7 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
".document",
|
22
22
|
".rspec",
|
23
23
|
"Gemfile",
|
24
|
-
"Gemfile.lock",
|
25
24
|
"LICENSE",
|
26
25
|
"README.rdoc",
|
27
26
|
"Rakefile",
|
@@ -40,52 +39,44 @@ Gem::Specification.new do |s|
|
|
40
39
|
]
|
41
40
|
s.homepage = %q{http://github.com/vidibus/vidibus-permalink}
|
42
41
|
s.require_paths = ["lib"]
|
43
|
-
s.rubygems_version = %q{1.
|
42
|
+
s.rubygems_version = %q{1.6.2}
|
44
43
|
s.summary = %q{Permalink handling}
|
45
|
-
s.test_files = [
|
46
|
-
"spec/models.rb",
|
47
|
-
"spec/permalink_spec.rb",
|
48
|
-
"spec/spec_helper.rb",
|
49
|
-
"spec/vidibus/permalink/dispatcher_spec.rb",
|
50
|
-
"spec/vidibus/permalink/mongoid_spec.rb"
|
51
|
-
]
|
52
44
|
|
53
45
|
if s.respond_to? :specification_version then
|
54
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
55
46
|
s.specification_version = 3
|
56
47
|
|
57
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
58
|
-
s.add_runtime_dependency(%q<rails>, ["~> 3.0
|
59
|
-
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0
|
49
|
+
s.add_runtime_dependency(%q<rails>, ["~> 3.0"])
|
50
|
+
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0"])
|
60
51
|
s.add_runtime_dependency(%q<vidibus-core_extensions>, [">= 0"])
|
61
52
|
s.add_runtime_dependency(%q<vidibus-uuid>, [">= 0"])
|
62
53
|
s.add_runtime_dependency(%q<vidibus-words>, [">= 0"])
|
63
54
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
64
55
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
65
|
-
s.add_development_dependency(%q<rspec>, ["~> 2
|
56
|
+
s.add_development_dependency(%q<rspec>, ["~> 2"])
|
66
57
|
s.add_development_dependency(%q<rr>, [">= 0"])
|
67
58
|
s.add_development_dependency(%q<relevance-rcov>, [">= 0"])
|
68
59
|
else
|
69
|
-
s.add_dependency(%q<rails>, ["~> 3.0
|
70
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0
|
60
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
61
|
+
s.add_dependency(%q<mongoid>, ["~> 2.0"])
|
71
62
|
s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
|
72
63
|
s.add_dependency(%q<vidibus-uuid>, [">= 0"])
|
73
64
|
s.add_dependency(%q<vidibus-words>, [">= 0"])
|
74
65
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
75
66
|
s.add_dependency(%q<rake>, [">= 0"])
|
76
|
-
s.add_dependency(%q<rspec>, ["~> 2
|
67
|
+
s.add_dependency(%q<rspec>, ["~> 2"])
|
77
68
|
s.add_dependency(%q<rr>, [">= 0"])
|
78
69
|
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
79
70
|
end
|
80
71
|
else
|
81
|
-
s.add_dependency(%q<rails>, ["~> 3.0
|
82
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0
|
72
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
73
|
+
s.add_dependency(%q<mongoid>, ["~> 2.0"])
|
83
74
|
s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
|
84
75
|
s.add_dependency(%q<vidibus-uuid>, [">= 0"])
|
85
76
|
s.add_dependency(%q<vidibus-words>, [">= 0"])
|
86
77
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
87
78
|
s.add_dependency(%q<rake>, [">= 0"])
|
88
|
-
s.add_dependency(%q<rspec>, ["~> 2
|
79
|
+
s.add_dependency(%q<rspec>, ["~> 2"])
|
89
80
|
s.add_dependency(%q<rr>, [">= 0"])
|
90
81
|
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
91
82
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vidibus-permalink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andre Pankratz
|
@@ -15,14 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-05-09 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
|
23
|
+
type: :runtime
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
26
|
requirements:
|
28
27
|
- - ~>
|
@@ -31,32 +30,28 @@ dependencies:
|
|
31
30
|
segments:
|
32
31
|
- 3
|
33
32
|
- 0
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
version: "3.0"
|
34
|
+
name: rails
|
35
|
+
version_requirements: *id001
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
|
-
type: :runtime
|
39
37
|
prerelease: false
|
40
|
-
|
41
|
-
|
38
|
+
type: :runtime
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
40
|
none: false
|
43
41
|
requirements:
|
44
42
|
- - ~>
|
45
43
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
44
|
+
hash: 3
|
47
45
|
segments:
|
48
46
|
- 2
|
49
47
|
- 0
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
version: 2.0.0.beta.20
|
54
|
-
requirement: *id002
|
48
|
+
version: "2.0"
|
49
|
+
name: mongoid
|
50
|
+
version_requirements: *id002
|
55
51
|
- !ruby/object:Gem::Dependency
|
56
|
-
type: :runtime
|
57
52
|
prerelease: false
|
58
|
-
|
59
|
-
|
53
|
+
type: :runtime
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
60
55
|
none: false
|
61
56
|
requirements:
|
62
57
|
- - ">="
|
@@ -65,12 +60,12 @@ dependencies:
|
|
65
60
|
segments:
|
66
61
|
- 0
|
67
62
|
version: "0"
|
68
|
-
|
63
|
+
name: vidibus-core_extensions
|
64
|
+
version_requirements: *id003
|
69
65
|
- !ruby/object:Gem::Dependency
|
70
|
-
type: :runtime
|
71
66
|
prerelease: false
|
72
|
-
|
73
|
-
|
67
|
+
type: :runtime
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
74
69
|
none: false
|
75
70
|
requirements:
|
76
71
|
- - ">="
|
@@ -79,12 +74,12 @@ dependencies:
|
|
79
74
|
segments:
|
80
75
|
- 0
|
81
76
|
version: "0"
|
82
|
-
|
77
|
+
name: vidibus-uuid
|
78
|
+
version_requirements: *id004
|
83
79
|
- !ruby/object:Gem::Dependency
|
84
|
-
type: :runtime
|
85
80
|
prerelease: false
|
86
|
-
|
87
|
-
|
81
|
+
type: :runtime
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
88
83
|
none: false
|
89
84
|
requirements:
|
90
85
|
- - ">="
|
@@ -93,12 +88,12 @@ dependencies:
|
|
93
88
|
segments:
|
94
89
|
- 0
|
95
90
|
version: "0"
|
96
|
-
|
91
|
+
name: vidibus-words
|
92
|
+
version_requirements: *id005
|
97
93
|
- !ruby/object:Gem::Dependency
|
98
|
-
type: :development
|
99
94
|
prerelease: false
|
100
|
-
|
101
|
-
|
95
|
+
type: :development
|
96
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
102
97
|
none: false
|
103
98
|
requirements:
|
104
99
|
- - ">="
|
@@ -107,12 +102,12 @@ dependencies:
|
|
107
102
|
segments:
|
108
103
|
- 0
|
109
104
|
version: "0"
|
110
|
-
|
105
|
+
name: jeweler
|
106
|
+
version_requirements: *id006
|
111
107
|
- !ruby/object:Gem::Dependency
|
112
|
-
type: :development
|
113
108
|
prerelease: false
|
114
|
-
|
115
|
-
|
109
|
+
type: :development
|
110
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
116
111
|
none: false
|
117
112
|
requirements:
|
118
113
|
- - ">="
|
@@ -121,30 +116,26 @@ dependencies:
|
|
121
116
|
segments:
|
122
117
|
- 0
|
123
118
|
version: "0"
|
124
|
-
|
119
|
+
name: rake
|
120
|
+
version_requirements: *id007
|
125
121
|
- !ruby/object:Gem::Dependency
|
126
|
-
type: :development
|
127
122
|
prerelease: false
|
128
|
-
|
129
|
-
|
123
|
+
type: :development
|
124
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
130
125
|
none: false
|
131
126
|
requirements:
|
132
127
|
- - ~>
|
133
128
|
- !ruby/object:Gem::Version
|
134
|
-
hash:
|
129
|
+
hash: 7
|
135
130
|
segments:
|
136
131
|
- 2
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
- 20
|
141
|
-
version: 2.0.0.beta.20
|
142
|
-
requirement: *id008
|
132
|
+
version: "2"
|
133
|
+
name: rspec
|
134
|
+
version_requirements: *id008
|
143
135
|
- !ruby/object:Gem::Dependency
|
144
|
-
type: :development
|
145
136
|
prerelease: false
|
146
|
-
|
147
|
-
|
137
|
+
type: :development
|
138
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
148
139
|
none: false
|
149
140
|
requirements:
|
150
141
|
- - ">="
|
@@ -153,12 +144,12 @@ dependencies:
|
|
153
144
|
segments:
|
154
145
|
- 0
|
155
146
|
version: "0"
|
156
|
-
|
147
|
+
name: rr
|
148
|
+
version_requirements: *id009
|
157
149
|
- !ruby/object:Gem::Dependency
|
158
|
-
type: :development
|
159
150
|
prerelease: false
|
160
|
-
|
161
|
-
|
151
|
+
type: :development
|
152
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
162
153
|
none: false
|
163
154
|
requirements:
|
164
155
|
- - ">="
|
@@ -167,7 +158,8 @@ dependencies:
|
|
167
158
|
segments:
|
168
159
|
- 0
|
169
160
|
version: "0"
|
170
|
-
|
161
|
+
name: relevance-rcov
|
162
|
+
version_requirements: *id010
|
171
163
|
description: Allows changeable permalinks (good for SEO).
|
172
164
|
email: andre@vidibus.com
|
173
165
|
executables: []
|
@@ -182,7 +174,6 @@ files:
|
|
182
174
|
- .document
|
183
175
|
- .rspec
|
184
176
|
- Gemfile
|
185
|
-
- Gemfile.lock
|
186
177
|
- LICENSE
|
187
178
|
- README.rdoc
|
188
179
|
- Rakefile
|
@@ -228,13 +219,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
219
|
requirements: []
|
229
220
|
|
230
221
|
rubyforge_project:
|
231
|
-
rubygems_version: 1.
|
222
|
+
rubygems_version: 1.6.2
|
232
223
|
signing_key:
|
233
224
|
specification_version: 3
|
234
225
|
summary: Permalink handling
|
235
|
-
test_files:
|
236
|
-
|
237
|
-
- spec/permalink_spec.rb
|
238
|
-
- spec/spec_helper.rb
|
239
|
-
- spec/vidibus/permalink/dispatcher_spec.rb
|
240
|
-
- spec/vidibus/permalink/mongoid_spec.rb
|
226
|
+
test_files: []
|
227
|
+
|
data/Gemfile.lock
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
abstract (1.0.0)
|
5
|
-
actionmailer (3.0.3)
|
6
|
-
actionpack (= 3.0.3)
|
7
|
-
mail (~> 2.2.9)
|
8
|
-
actionpack (3.0.3)
|
9
|
-
activemodel (= 3.0.3)
|
10
|
-
activesupport (= 3.0.3)
|
11
|
-
builder (~> 2.1.2)
|
12
|
-
erubis (~> 2.6.6)
|
13
|
-
i18n (~> 0.4)
|
14
|
-
rack (~> 1.2.1)
|
15
|
-
rack-mount (~> 0.6.13)
|
16
|
-
rack-test (~> 0.5.6)
|
17
|
-
tzinfo (~> 0.3.23)
|
18
|
-
activemodel (3.0.3)
|
19
|
-
activesupport (= 3.0.3)
|
20
|
-
builder (~> 2.1.2)
|
21
|
-
i18n (~> 0.4)
|
22
|
-
activerecord (3.0.3)
|
23
|
-
activemodel (= 3.0.3)
|
24
|
-
activesupport (= 3.0.3)
|
25
|
-
arel (~> 2.0.2)
|
26
|
-
tzinfo (~> 0.3.23)
|
27
|
-
activeresource (3.0.3)
|
28
|
-
activemodel (= 3.0.3)
|
29
|
-
activesupport (= 3.0.3)
|
30
|
-
activesupport (3.0.3)
|
31
|
-
arel (2.0.6)
|
32
|
-
bson (1.1.4)
|
33
|
-
builder (2.1.2)
|
34
|
-
diff-lcs (1.1.2)
|
35
|
-
erubis (2.6.6)
|
36
|
-
abstract (>= 1.0.0)
|
37
|
-
git (1.2.5)
|
38
|
-
i18n (0.5.0)
|
39
|
-
jeweler (1.5.1)
|
40
|
-
bundler (~> 1.0.0)
|
41
|
-
git (>= 1.2.5)
|
42
|
-
rake
|
43
|
-
macaddr (1.0.0)
|
44
|
-
mail (2.2.12)
|
45
|
-
activesupport (>= 2.3.6)
|
46
|
-
i18n (>= 0.4.0)
|
47
|
-
mime-types (~> 1.16)
|
48
|
-
treetop (~> 1.4.8)
|
49
|
-
mime-types (1.16)
|
50
|
-
mongo (1.1.4)
|
51
|
-
bson (>= 1.1.1)
|
52
|
-
mongoid (2.0.0.beta.20)
|
53
|
-
activemodel (~> 3.0)
|
54
|
-
mongo (~> 1.1)
|
55
|
-
tzinfo (~> 0.3.22)
|
56
|
-
will_paginate (~> 3.0.pre)
|
57
|
-
polyglot (0.3.1)
|
58
|
-
rack (1.2.1)
|
59
|
-
rack-mount (0.6.13)
|
60
|
-
rack (>= 1.0.0)
|
61
|
-
rack-test (0.5.6)
|
62
|
-
rack (>= 1.0)
|
63
|
-
rails (3.0.3)
|
64
|
-
actionmailer (= 3.0.3)
|
65
|
-
actionpack (= 3.0.3)
|
66
|
-
activerecord (= 3.0.3)
|
67
|
-
activeresource (= 3.0.3)
|
68
|
-
activesupport (= 3.0.3)
|
69
|
-
bundler (~> 1.0)
|
70
|
-
railties (= 3.0.3)
|
71
|
-
railties (3.0.3)
|
72
|
-
actionpack (= 3.0.3)
|
73
|
-
activesupport (= 3.0.3)
|
74
|
-
rake (>= 0.8.7)
|
75
|
-
thor (~> 0.14.4)
|
76
|
-
rake (0.8.7)
|
77
|
-
relevance-rcov (0.9.2.1)
|
78
|
-
rr (1.0.2)
|
79
|
-
rspec (2.0.1)
|
80
|
-
rspec-core (~> 2.0.1)
|
81
|
-
rspec-expectations (~> 2.0.1)
|
82
|
-
rspec-mocks (~> 2.0.1)
|
83
|
-
rspec-core (2.0.1)
|
84
|
-
rspec-expectations (2.0.1)
|
85
|
-
diff-lcs (>= 1.1.2)
|
86
|
-
rspec-mocks (2.0.1)
|
87
|
-
rspec-core (~> 2.0.1)
|
88
|
-
rspec-expectations (~> 2.0.1)
|
89
|
-
thor (0.14.6)
|
90
|
-
treetop (1.4.9)
|
91
|
-
polyglot (>= 0.3.1)
|
92
|
-
tzinfo (0.3.23)
|
93
|
-
uuid (2.3.1)
|
94
|
-
macaddr (~> 1.0)
|
95
|
-
vidibus-core_extensions (0.3.12)
|
96
|
-
vidibus-uuid (0.3.8)
|
97
|
-
mongoid (~> 2.0.0.beta.20)
|
98
|
-
uuid (~> 2.3.1)
|
99
|
-
vidibus-words (0.0.1)
|
100
|
-
rails (~> 3.0.0)
|
101
|
-
vidibus-core_extensions
|
102
|
-
will_paginate (3.0.pre2)
|
103
|
-
|
104
|
-
PLATFORMS
|
105
|
-
ruby
|
106
|
-
|
107
|
-
DEPENDENCIES
|
108
|
-
jeweler
|
109
|
-
mongoid (~> 2.0.0.beta.20)
|
110
|
-
rails (~> 3.0.0)
|
111
|
-
rake
|
112
|
-
relevance-rcov
|
113
|
-
rr
|
114
|
-
rspec (~> 2.0.0.beta.20)
|
115
|
-
vidibus-core_extensions
|
116
|
-
vidibus-uuid
|
117
|
-
vidibus-words
|