vidibus-permalink 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|