semi_static 0.0.2 → 0.1.0
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/.gitignore +2 -0
- data/app/controllers/semi_static/news_controller.rb +1 -7
- data/app/controllers/semi_static/page_controller.rb +1 -12
- data/lib/semi_static/backend.rb +1 -2
- data/lib/semi_static/controller/news.rb +13 -0
- data/lib/semi_static/controller/page.rb +16 -0
- data/lib/semi_static/controller.rb +4 -0
- data/lib/semi_static/tilt_wrapper.rb +30 -0
- data/lib/semi_static/version.rb +1 -1
- data/lib/semi_static.rb +2 -0
- data/spec/acceptance/custom_controllers_spec.rb +19 -0
- data/spec/acceptance/fake/app/controllers/admin/faqs_controller.rb +6 -0
- data/spec/acceptance/fake/app/controllers/faqs_controller.rb +12 -0
- data/spec/acceptance/fake/app/models/faq.rb +3 -0
- data/spec/acceptance/fake/app.rb +4 -0
- data/spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_chained.md.erb +5 -0
- data/spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_page.erb +3 -0
- data/spec/acceptance/fake/semi_static_pages/faqs/checkin_devices.md +7 -0
- data/spec/acceptance/page_spec.rb +12 -2
- metadata +33 -15
@@ -1,14 +1,3 @@
|
|
1
1
|
class SemiStatic::PageController < ApplicationController
|
2
|
-
|
3
|
-
@articles = resource.all
|
4
|
-
end
|
5
|
-
|
6
|
-
def show
|
7
|
-
@article = resource.find(params[:id])
|
8
|
-
raise ActionController::RoutingError.new(url_for(:id => params[:id], :only_path => true)) unless @article
|
9
|
-
end
|
10
|
-
|
11
|
-
def resource
|
12
|
-
env["semi_static.mapping"]
|
13
|
-
end
|
2
|
+
include SemiStatic::Controller::Page
|
14
3
|
end
|
data/lib/semi_static/backend.rb
CHANGED
@@ -11,8 +11,7 @@ class SemiStatic::Backend < SemiStatic::Page
|
|
11
11
|
@cache[page_type] = Dir.glob(path).map do |f|
|
12
12
|
yaml, body = File.read(f).split("\n...\n", 2)
|
13
13
|
h = YAML.load(yaml)
|
14
|
-
|
15
|
-
page_type.new(template, h)
|
14
|
+
page_type.new(SemiStatic::TiltWrapper.template(f,body), h)
|
16
15
|
end
|
17
16
|
end
|
18
17
|
@cache[page_type]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module SemiStatic::Controller::Page
|
2
|
+
def index
|
3
|
+
@articles = resource.all
|
4
|
+
end
|
5
|
+
|
6
|
+
def show
|
7
|
+
@article = resource.find(params[:id])
|
8
|
+
raise ActionController::RoutingError.new(url_for(:id => params[:id], :only_path => true)) unless @article
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def resource
|
14
|
+
env["semi_static.mapping"]
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class SemiStatic::TiltWrapper
|
2
|
+
class << self
|
3
|
+
def template(filename, body)
|
4
|
+
wrap Tilt.new(filename) {|t| body }
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def wrap(template)
|
10
|
+
components = File.basename(template.file).split(".")
|
11
|
+
if components.size > 2
|
12
|
+
filename = template.file.chomp('.' + components.last)
|
13
|
+
wrap new(template, filename)
|
14
|
+
else
|
15
|
+
template
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :file
|
21
|
+
|
22
|
+
def initialize(wrapping_template, filename)
|
23
|
+
@wrapping_template, @file = wrapping_template, filename
|
24
|
+
end
|
25
|
+
|
26
|
+
def render(scope=Object.new, locals={}, &block)
|
27
|
+
template = Tilt.new(@file) {|t| @wrapping_template.render(scope, locals, &block) }
|
28
|
+
template.render(scope, locals, &block)
|
29
|
+
end
|
30
|
+
end
|
data/lib/semi_static/version.rb
CHANGED
data/lib/semi_static.rb
CHANGED
@@ -14,6 +14,8 @@ module SemiStatic
|
|
14
14
|
autoload :Article, "semi_static/article"
|
15
15
|
autoload :Page, "semi_static/page"
|
16
16
|
autoload :Backend, "semi_static/backend"
|
17
|
+
autoload :TiltWrapper, "semi_static/tilt_wrapper"
|
18
|
+
autoload :Controller, "semi_static/controller"
|
17
19
|
|
18
20
|
class << self
|
19
21
|
attr_writer :backend
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/acceptance_helper')
|
3
|
+
|
4
|
+
feature 'custom controllers' do
|
5
|
+
scenario "index" do
|
6
|
+
visit faqs_path
|
7
|
+
find("h1 a").text.should == "チェックイン端末とはなんですか?"
|
8
|
+
end
|
9
|
+
|
10
|
+
scenario "overwritten method" do
|
11
|
+
visit faq_path(:id => "管理端末とはなんですか?")
|
12
|
+
find("h1").text.should == "チェックイン端末とはなんですか?"
|
13
|
+
end
|
14
|
+
|
15
|
+
scenario "namespaced controller" do
|
16
|
+
visit admin_faqs_path
|
17
|
+
find("body").text.should == "Namespaced"
|
18
|
+
end
|
19
|
+
end
|
data/spec/acceptance/fake/app.rb
CHANGED
@@ -13,5 +13,9 @@ app.initialize!
|
|
13
13
|
app.routes.draw do
|
14
14
|
semi_static_for :news
|
15
15
|
semi_static_for :event_planning_tips
|
16
|
+
semi_static_for :faqs, :controller => :faqs
|
17
|
+
namespace :admin do
|
18
|
+
semi_static_for :faqs, :controller => :faqs
|
19
|
+
end
|
16
20
|
end
|
17
21
|
class ApplicationController < ActionController::Base; end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
title: チェックイン端末とはなんですか?
|
2
|
+
...
|
3
|
+
チェックイン端末は、チケットをスキャンするために用いられます。携帯電話やスマートフォン、PC付属のウェブカメラなどでご利用になれます。iPhoneをお持ちの方は、[Doorkeeper iPhoneアプリ](http://itunes.apple.com/us/app/doorkeeper/id414643903)を使用すると、より簡単にチェックインが可能です。
|
4
|
+
|
5
|
+
<b>注記:</b> チケットをスキャンする際には、各イベントごと事前にチェックイン端末の登録が必要です。
|
6
|
+
|
7
|
+
チェックイン端末の登録につきましては、「[iPhoneでチケットを読み取るには](/how-to/iphone%E3%81%A7%E3%83%81%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E3%81%AB%E3%81%AF)」を参照ください。
|
@@ -4,8 +4,8 @@ require File.expand_path(File.dirname(__FILE__) + '/acceptance_helper')
|
|
4
4
|
feature 'page' do
|
5
5
|
scenario "index" do
|
6
6
|
visit '/event_planning_tips'
|
7
|
-
page.
|
8
|
-
page.
|
7
|
+
page.should have_css("h1 a")
|
8
|
+
page.should have_content("イベント時に気をつけたいマナー")
|
9
9
|
end
|
10
10
|
|
11
11
|
scenario 'show markdown page' do
|
@@ -14,4 +14,14 @@ feature 'page' do
|
|
14
14
|
page.find("section h2").text.should == "1. 無断に写真や動画の撮影、公開しない"
|
15
15
|
end
|
16
16
|
|
17
|
+
scenario 'show erb page' do
|
18
|
+
visit "/event_planning_tips/erb-test"
|
19
|
+
page.find(".erb").text.should == "1 + 1 = 2"
|
20
|
+
end
|
21
|
+
|
22
|
+
scenario 'show erb chained' do
|
23
|
+
visit "/event_planning_tips/erb-chained"
|
24
|
+
page.find("h2").text.should == "1 + 1 = 2"
|
25
|
+
page.should have_css "img"
|
26
|
+
end
|
17
27
|
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.0
|
4
|
+
version: 0.1.0
|
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: 2011-
|
12
|
+
date: 2011-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156249420 !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: *
|
24
|
+
version_requirements: *2156249420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rdiscount
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156248400 !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: *
|
35
|
+
version_requirements: *2156248400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: babosa
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156247860 !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: *
|
46
|
+
version_requirements: *2156247860
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: tilt
|
49
|
-
requirement: &
|
49
|
+
requirement: &2156247360 !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: *
|
57
|
+
version_requirements: *2156247360
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &2156246380 !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: *
|
68
|
+
version_requirements: *2156246380
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: steak
|
71
|
-
requirement: &
|
71
|
+
requirement: &2156236320 !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: *
|
79
|
+
version_requirements: *2156236320
|
80
80
|
description: Easily create content for your Rails apps using just textfiles
|
81
81
|
email:
|
82
82
|
- paul@mobalean.com
|
@@ -97,19 +97,30 @@ files:
|
|
97
97
|
- app/views/semi_static/page/show.html.erb
|
98
98
|
- lib/semi_static.rb
|
99
99
|
- lib/semi_static/backend.rb
|
100
|
+
- lib/semi_static/controller.rb
|
101
|
+
- lib/semi_static/controller/news.rb
|
102
|
+
- lib/semi_static/controller/page.rb
|
100
103
|
- lib/semi_static/news.rb
|
101
104
|
- lib/semi_static/page.rb
|
102
105
|
- lib/semi_static/page/with_locale.rb
|
103
106
|
- lib/semi_static/rails.rb
|
104
107
|
- lib/semi_static/rails/routes.rb
|
108
|
+
- lib/semi_static/tilt_wrapper.rb
|
105
109
|
- lib/semi_static/version.rb
|
106
110
|
- semi_static.gemspec
|
107
111
|
- spec/acceptance/acceptance_helper.rb
|
112
|
+
- spec/acceptance/custom_controllers_spec.rb
|
108
113
|
- spec/acceptance/fake/app.rb
|
114
|
+
- spec/acceptance/fake/app/controllers/admin/faqs_controller.rb
|
115
|
+
- spec/acceptance/fake/app/controllers/faqs_controller.rb
|
109
116
|
- spec/acceptance/fake/app/models/event_planning_tip.rb
|
117
|
+
- spec/acceptance/fake/app/models/faq.rb
|
110
118
|
- spec/acceptance/fake/app/models/news.rb
|
111
119
|
- spec/acceptance/fake/app/views/application.html.erb
|
120
|
+
- spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_chained.md.erb
|
121
|
+
- spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_page.erb
|
112
122
|
- spec/acceptance/fake/semi_static_pages/event_planning_tips/manner.md
|
123
|
+
- spec/acceptance/fake/semi_static_pages/faqs/checkin_devices.md
|
113
124
|
- spec/acceptance/fake/semi_static_pages/news/2011-07-26-replaced-download.md
|
114
125
|
- spec/acceptance/news_spec.rb
|
115
126
|
- spec/acceptance/page_spec.rb
|
@@ -138,17 +149,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
149
|
version: '0'
|
139
150
|
requirements: []
|
140
151
|
rubyforge_project: semi_static
|
141
|
-
rubygems_version: 1.8.
|
152
|
+
rubygems_version: 1.8.10
|
142
153
|
signing_key:
|
143
154
|
specification_version: 3
|
144
155
|
summary: Text file based CMS for Rails
|
145
156
|
test_files:
|
146
157
|
- spec/acceptance/acceptance_helper.rb
|
158
|
+
- spec/acceptance/custom_controllers_spec.rb
|
147
159
|
- spec/acceptance/fake/app.rb
|
160
|
+
- spec/acceptance/fake/app/controllers/admin/faqs_controller.rb
|
161
|
+
- spec/acceptance/fake/app/controllers/faqs_controller.rb
|
148
162
|
- spec/acceptance/fake/app/models/event_planning_tip.rb
|
163
|
+
- spec/acceptance/fake/app/models/faq.rb
|
149
164
|
- spec/acceptance/fake/app/models/news.rb
|
150
165
|
- spec/acceptance/fake/app/views/application.html.erb
|
166
|
+
- spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_chained.md.erb
|
167
|
+
- spec/acceptance/fake/semi_static_pages/event_planning_tips/erb_page.erb
|
151
168
|
- spec/acceptance/fake/semi_static_pages/event_planning_tips/manner.md
|
169
|
+
- spec/acceptance/fake/semi_static_pages/faqs/checkin_devices.md
|
152
170
|
- spec/acceptance/fake/semi_static_pages/news/2011-07-26-replaced-download.md
|
153
171
|
- spec/acceptance/news_spec.rb
|
154
172
|
- spec/acceptance/page_spec.rb
|