semi_static 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,7 @@ module SemiStatic::Controller::Page
7
7
  raise ActionController::RoutingError.new("Invalid Encoded URL") unless params[:id].valid_encoding?
8
8
  @article = resource.find(params[:id])
9
9
  raise ActionController::RoutingError.new(url_for(:id => params[:id], :only_path => true)) unless @article
10
+ redirect_to @article unless params[:id] == @article.to_param
10
11
  end
11
12
 
12
13
  private
@@ -19,6 +19,7 @@ class SemiStatic::Page
19
19
  end
20
20
 
21
21
  def self.find(param)
22
+ param = CGI.unescape(param) if param =~ /%/
22
23
  all.find {|a| a.to_param == param }
23
24
  end
24
25
 
@@ -1,3 +1,3 @@
1
1
  module SemiStatic
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
3
3
  end
@@ -16,6 +16,7 @@ feature 'page' do
16
16
 
17
17
  scenario 'show multibyte bang' do
18
18
  visit "/event_planning_tips/#{CGI.escape("イベントやろう")}"
19
+ current_path.should == "/event_planning_tips/#{CGI.escape("イベントやろう")}"
19
20
  page.find("h1").text.should == "イベントやろう!"
20
21
  end
21
22
 
@@ -39,4 +40,10 @@ feature 'page' do
39
40
  visit "/event_planning_tips/%8e%8f"
40
41
  page.status_code.should == 404
41
42
  end
43
+
44
+ scenario 'redirect in case of double escape' do
45
+ visit "/event_planning_tips/#{CGI.escape(CGI.escape("イベントやろう"))}"
46
+ current_path.should == "/event_planning_tips/#{CGI.escape("イベントやろう")}"
47
+ page.find("h1").text.should == "イベントやろう!"
48
+ end
42
49
  end
data/spec/page_spec.rb CHANGED
@@ -14,4 +14,6 @@ describe SemiStatic::Page do
14
14
  it { @english_page.to_s.should == "foo bar" }
15
15
  it { described_class.new(nil, {}).to_s.should == "" }
16
16
  it { SemiStatic::Page.find("foo-bar").should == @english_page }
17
+ it { SemiStatic::Page.find("ほげ").should == @japanese_page }
18
+ it { SemiStatic::Page.find(CGI.escape("ほげ")).should == @japanese_page }
17
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semi_static
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-02 00:00:00.000000000 Z
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &2157129860 !ruby/object:Gem::Requirement
16
+ requirement: &18708200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157129860
24
+ version_requirements: *18708200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdiscount
27
- requirement: &2155985060 !ruby/object:Gem::Requirement
27
+ requirement: &18707340 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2155985060
35
+ version_requirements: *18707340
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: babosa
38
- requirement: &2157160360 !ruby/object:Gem::Requirement
38
+ requirement: &18706300 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2157160360
46
+ version_requirements: *18706300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: tilt
49
- requirement: &2157159940 !ruby/object:Gem::Requirement
49
+ requirement: &18705500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2157159940
57
+ version_requirements: *18705500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &2157159440 !ruby/object:Gem::Requirement
60
+ requirement: &18704500 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.5.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2157159440
68
+ version_requirements: *18704500
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: steak
71
- requirement: &2157159020 !ruby/object:Gem::Requirement
71
+ requirement: &18703740 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2157159020
79
+ version_requirements: *18703740
80
80
  description: Easily create content for your Rails apps using just textfiles
81
81
  email:
82
82
  - paul@mobalean.com
@@ -155,27 +155,4 @@ rubygems_version: 1.8.10
155
155
  signing_key:
156
156
  specification_version: 3
157
157
  summary: Text file based CMS for Rails
158
- test_files:
159
- - spec/acceptance/acceptance_helper.rb
160
- - spec/acceptance/custom_controllers_spec.rb
161
- - spec/acceptance/fake/app.rb
162
- - spec/acceptance/fake/app/controllers/admin/faqs_controller.rb
163
- - spec/acceptance/fake/app/controllers/faqs_controller.rb
164
- - spec/acceptance/fake/app/models/event_planning_tip.rb
165
- - spec/acceptance/fake/app/models/faq.rb
166
- - spec/acceptance/fake/app/models/news.rb
167
- - spec/acceptance/fake/app/views/application.html.erb
168
- - spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_chained.md.erb
169
- - spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_page.erb
170
- - spec/acceptance/fake/semi_static_pages/event_planning_tips/manner.md
171
- - spec/acceptance/fake/semi_static_pages/event_planning_tips/multibyte-bang.md
172
- - spec/acceptance/fake/semi_static_pages/event_planning_tips/non_standard_slug.md
173
- - spec/acceptance/fake/semi_static_pages/faqs/checkin_devices.md
174
- - spec/acceptance/fake/semi_static_pages/news/2011-07-26-replaced-download.md
175
- - spec/acceptance/news_spec.rb
176
- - spec/acceptance/page_spec.rb
177
- - spec/backend_spec.rb
178
- - spec/news_spec.rb
179
- - spec/page_spec.rb
180
- - spec/semi_static_pages/news/2011-07-26-replaced-download.md
181
- - spec/spec_helper.rb
158
+ test_files: []