vidibus-permalink 0.0.1 → 0.0.2

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/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = vidibus-permalink
2
2
 
3
- This gem allows changeable permalinks. That's an oxymoron, but it's really useful from a SEO perspective.
3
+ This gem allows changeable permalinks. That may be an oxymoron, but it's really useful from a SEO perspective.
4
4
 
5
5
  It is part of the open source SOA framework Vidibus: http://vidibus.org
6
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -7,10 +7,7 @@ module Vidibus
7
7
  # Initialize a new Dispatcher instance.
8
8
  # Provide an absolute +path+ to be dispatched.
9
9
  def initialize(path)
10
- unless path.match(/^\//)
11
- raise PathError, "Path must be absolute."
12
- end
13
- @path = path
10
+ self.path = path
14
11
  end
15
12
 
16
13
  # Returns the path to dispatch.
@@ -18,9 +15,16 @@ module Vidibus
18
15
  @path
19
16
  end
20
17
 
18
+ # Sets path to dispatch
19
+ def path=(value)
20
+ raise PathError.new("Path must be absolute.") unless value.match(/^\//)
21
+ @path = value
22
+ end
23
+
21
24
  # Returns parts of the path.
25
+ # Ignores file extension and request params
22
26
  def parts
23
- @parts ||= path.split("/").reject{|p| p == ""}
27
+ @parts ||= path.gsub(/(\.[^\/]+)?(\?.*)?$/, "").scan(/[^?\/]+/)
24
28
  end
25
29
 
26
30
  # Returns permalink objects matching the parts.
@@ -30,10 +30,32 @@ describe "Vidibus::Permalink::Dispatcher" do
30
30
  end
31
31
  end
32
32
 
33
+ describe "#path=" do
34
+ it "should set the request path" do
35
+ this.path = "/something/nasty"
36
+ this.path.should eql("/something/nasty")
37
+ end
38
+ end
39
+
33
40
  describe "#parts" do
34
41
  it "should contain the parts of the given path" do
35
42
  this.parts.should eql(%w[something pretty])
36
43
  end
44
+
45
+ it "should deal with empty parts of path" do
46
+ this.path = "/something//pretty"
47
+ this.parts.should eql(%w[something pretty])
48
+ end
49
+
50
+ it "should ignore params" do
51
+ this.path = "/something/pretty?hello=world"
52
+ this.parts.should eql(%w[something pretty])
53
+ end
54
+
55
+ it "should ignore file extension" do
56
+ this.path = "/something/pretty?hello=world"
57
+ this.parts.should eql(%w[something pretty])
58
+ end
37
59
  end
38
60
 
39
61
  describe "#objects" do
@@ -1,55 +1,53 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vidibus-permalink}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
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{2010-11-16}
12
+ s.date = %q{2010-12-07}
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 = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".bundle/config",
21
- ".document",
22
- ".gitignore",
23
- ".rspec",
24
- "Gemfile",
25
- "Gemfile.lock",
26
- "LICENSE",
27
- "README.rdoc",
28
- "Rakefile",
29
- "VERSION",
30
- "app/models/permalink.rb",
31
- "lib/vidibus-permalink.rb",
32
- "lib/vidibus/permalink.rb",
33
- "lib/vidibus/permalink/dispatcher.rb",
34
- "lib/vidibus/permalink/mongoid.rb",
35
- "spec/models.rb",
36
- "spec/permalink_spec.rb",
37
- "spec/spec_helper.rb",
38
- "spec/vidibus/permalink/dispatcher_spec.rb",
39
- "spec/vidibus/permalink/mongoid_spec.rb",
40
- "vidibus-permalink.gemspec"
21
+ ".document",
22
+ ".rspec",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "app/models/permalink.rb",
30
+ "lib/vidibus-permalink.rb",
31
+ "lib/vidibus/permalink.rb",
32
+ "lib/vidibus/permalink/dispatcher.rb",
33
+ "lib/vidibus/permalink/mongoid.rb",
34
+ "spec/models.rb",
35
+ "spec/permalink_spec.rb",
36
+ "spec/spec_helper.rb",
37
+ "spec/vidibus/permalink/dispatcher_spec.rb",
38
+ "spec/vidibus/permalink/mongoid_spec.rb",
39
+ "vidibus-permalink.gemspec"
41
40
  ]
42
41
  s.homepage = %q{http://github.com/vidibus/vidibus-permalink}
43
- s.rdoc_options = ["--charset=UTF-8"]
44
42
  s.require_paths = ["lib"]
45
43
  s.rubygems_version = %q{1.3.7}
46
44
  s.summary = %q{Permalink handling}
47
45
  s.test_files = [
48
46
  "spec/models.rb",
49
- "spec/permalink_spec.rb",
50
- "spec/spec_helper.rb",
51
- "spec/vidibus/permalink/dispatcher_spec.rb",
52
- "spec/vidibus/permalink/mongoid_spec.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"
53
51
  ]
54
52
 
55
53
  if s.respond_to? :specification_version then
@@ -62,12 +60,32 @@ Gem::Specification.new do |s|
62
60
  s.add_runtime_dependency(%q<vidibus-core_extensions>, [">= 0"])
63
61
  s.add_runtime_dependency(%q<vidibus-uuid>, [">= 0"])
64
62
  s.add_runtime_dependency(%q<vidibus-words>, [">= 0"])
63
+ s.add_runtime_dependency(%q<jeweler>, [">= 0"])
64
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
65
+ s.add_runtime_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
66
+ s.add_runtime_dependency(%q<rr>, [">= 0"])
67
+ s.add_runtime_dependency(%q<relevance-rcov>, [">= 0"])
68
+ s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
69
+ s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
70
+ s.add_runtime_dependency(%q<vidibus-core_extensions>, [">= 0"])
71
+ s.add_runtime_dependency(%q<vidibus-uuid>, [">= 0"])
72
+ s.add_runtime_dependency(%q<vidibus-words>, [">= 0"])
65
73
  else
66
74
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
67
75
  s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
68
76
  s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
69
77
  s.add_dependency(%q<vidibus-uuid>, [">= 0"])
70
78
  s.add_dependency(%q<vidibus-words>, [">= 0"])
79
+ s.add_dependency(%q<jeweler>, [">= 0"])
80
+ s.add_dependency(%q<rake>, [">= 0"])
81
+ s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
82
+ s.add_dependency(%q<rr>, [">= 0"])
83
+ s.add_dependency(%q<relevance-rcov>, [">= 0"])
84
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
85
+ s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
86
+ s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
87
+ s.add_dependency(%q<vidibus-uuid>, [">= 0"])
88
+ s.add_dependency(%q<vidibus-words>, [">= 0"])
71
89
  end
72
90
  else
73
91
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
@@ -75,6 +93,16 @@ Gem::Specification.new do |s|
75
93
  s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
76
94
  s.add_dependency(%q<vidibus-uuid>, [">= 0"])
77
95
  s.add_dependency(%q<vidibus-words>, [">= 0"])
96
+ s.add_dependency(%q<jeweler>, [">= 0"])
97
+ s.add_dependency(%q<rake>, [">= 0"])
98
+ s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
99
+ s.add_dependency(%q<rr>, [">= 0"])
100
+ s.add_dependency(%q<relevance-rcov>, [">= 0"])
101
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
102
+ s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
103
+ s.add_dependency(%q<vidibus-core_extensions>, [">= 0"])
104
+ s.add_dependency(%q<vidibus-uuid>, [">= 0"])
105
+ s.add_dependency(%q<vidibus-words>, [">= 0"])
78
106
  end
79
107
  end
80
108
 
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: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andre Pankratz
@@ -15,13 +15,14 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-16 00:00:00 +01:00
18
+ date: 2010-12-07 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: rails
22
+ type: :runtime
23
23
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ name: rails
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
26
  none: false
26
27
  requirements:
27
28
  - - ~>
@@ -32,12 +33,12 @@ dependencies:
32
33
  - 0
33
34
  - 0
34
35
  version: 3.0.0
35
- type: :runtime
36
- version_requirements: *id001
36
+ requirement: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: mongoid
38
+ type: :runtime
39
39
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ name: mongoid
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
44
  - - ~>
@@ -50,12 +51,26 @@ dependencies:
50
51
  - beta
51
52
  - 20
52
53
  version: 2.0.0.beta.20
53
- type: :runtime
54
- version_requirements: *id002
54
+ requirement: *id002
55
55
  - !ruby/object:Gem::Dependency
56
+ type: :runtime
57
+ prerelease: false
56
58
  name: vidibus-core_extensions
59
+ version_requirements: &id003 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ type: :runtime
57
71
  prerelease: false
58
- requirement: &id003 !ruby/object:Gem::Requirement
72
+ name: vidibus-uuid
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
59
74
  none: false
60
75
  requirements:
61
76
  - - ">="
@@ -64,12 +79,26 @@ dependencies:
64
79
  segments:
65
80
  - 0
66
81
  version: "0"
82
+ requirement: *id004
83
+ - !ruby/object:Gem::Dependency
67
84
  type: :runtime
68
- version_requirements: *id003
85
+ prerelease: false
86
+ name: vidibus-words
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirement: *id005
69
97
  - !ruby/object:Gem::Dependency
70
- name: vidibus-uuid
98
+ type: :runtime
71
99
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
100
+ name: jeweler
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
73
102
  none: false
74
103
  requirements:
75
104
  - - ">="
@@ -78,12 +107,58 @@ dependencies:
78
107
  segments:
79
108
  - 0
80
109
  version: "0"
110
+ requirement: *id006
111
+ - !ruby/object:Gem::Dependency
81
112
  type: :runtime
82
- version_requirements: *id004
113
+ prerelease: false
114
+ name: rake
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ requirement: *id007
83
125
  - !ruby/object:Gem::Dependency
84
- name: vidibus-words
126
+ type: :runtime
127
+ prerelease: false
128
+ name: rspec
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ hash: 62196427
135
+ segments:
136
+ - 2
137
+ - 0
138
+ - 0
139
+ - beta
140
+ - 20
141
+ version: 2.0.0.beta.20
142
+ requirement: *id008
143
+ - !ruby/object:Gem::Dependency
144
+ type: :runtime
145
+ prerelease: false
146
+ name: rr
147
+ version_requirements: &id009 !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ hash: 3
153
+ segments:
154
+ - 0
155
+ version: "0"
156
+ requirement: *id009
157
+ - !ruby/object:Gem::Dependency
158
+ type: :runtime
85
159
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
160
+ name: relevance-rcov
161
+ version_requirements: &id010 !ruby/object:Gem::Requirement
87
162
  none: false
88
163
  requirements:
89
164
  - - ">="
@@ -92,8 +167,83 @@ dependencies:
92
167
  segments:
93
168
  - 0
94
169
  version: "0"
170
+ requirement: *id010
171
+ - !ruby/object:Gem::Dependency
172
+ type: :runtime
173
+ prerelease: false
174
+ name: rails
175
+ version_requirements: &id011 !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ~>
179
+ - !ruby/object:Gem::Version
180
+ hash: 7
181
+ segments:
182
+ - 3
183
+ - 0
184
+ - 0
185
+ version: 3.0.0
186
+ requirement: *id011
187
+ - !ruby/object:Gem::Dependency
95
188
  type: :runtime
96
- version_requirements: *id005
189
+ prerelease: false
190
+ name: mongoid
191
+ version_requirements: &id012 !ruby/object:Gem::Requirement
192
+ none: false
193
+ requirements:
194
+ - - ~>
195
+ - !ruby/object:Gem::Version
196
+ hash: 62196427
197
+ segments:
198
+ - 2
199
+ - 0
200
+ - 0
201
+ - beta
202
+ - 20
203
+ version: 2.0.0.beta.20
204
+ requirement: *id012
205
+ - !ruby/object:Gem::Dependency
206
+ type: :runtime
207
+ prerelease: false
208
+ name: vidibus-core_extensions
209
+ version_requirements: &id013 !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ hash: 3
215
+ segments:
216
+ - 0
217
+ version: "0"
218
+ requirement: *id013
219
+ - !ruby/object:Gem::Dependency
220
+ type: :runtime
221
+ prerelease: false
222
+ name: vidibus-uuid
223
+ version_requirements: &id014 !ruby/object:Gem::Requirement
224
+ none: false
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ hash: 3
229
+ segments:
230
+ - 0
231
+ version: "0"
232
+ requirement: *id014
233
+ - !ruby/object:Gem::Dependency
234
+ type: :runtime
235
+ prerelease: false
236
+ name: vidibus-words
237
+ version_requirements: &id015 !ruby/object:Gem::Requirement
238
+ none: false
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ hash: 3
243
+ segments:
244
+ - 0
245
+ version: "0"
246
+ requirement: *id015
97
247
  description: Allows changeable permalinks (good for SEO).
98
248
  email: andre@vidibus.com
99
249
  executables: []
@@ -106,7 +256,6 @@ extra_rdoc_files:
106
256
  files:
107
257
  - .bundle/config
108
258
  - .document
109
- - .gitignore
110
259
  - .rspec
111
260
  - Gemfile
112
261
  - Gemfile.lock
@@ -130,8 +279,8 @@ homepage: http://github.com/vidibus/vidibus-permalink
130
279
  licenses: []
131
280
 
132
281
  post_install_message:
133
- rdoc_options:
134
- - --charset=UTF-8
282
+ rdoc_options: []
283
+
135
284
  require_paths:
136
285
  - lib
137
286
  required_ruby_version: !ruby/object:Gem::Requirement
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC