akki 0.0.2 → 0.0.3
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/features/articles.feature +7 -3
- data/features/step_definitions/steps.rb +8 -0
- data/lib/akki/application.rb +8 -1
- data/lib/akki/version.rb +1 -1
- data/spec/application_spec.rb +11 -4
- metadata +12 -12
data/features/articles.feature
CHANGED
@@ -17,9 +17,13 @@ Feature: Article
|
|
17
17
|
%head
|
18
18
|
%title= article.title
|
19
19
|
%body
|
20
|
-
=
|
20
|
+
= yield
|
21
21
|
"""
|
22
|
-
And
|
22
|
+
And the article template:
|
23
|
+
"""
|
24
|
+
%div.article= article.render
|
25
|
+
"""
|
26
|
+
When I visit "1983/10/23/simple-article"
|
23
27
|
Then I should see:
|
24
28
|
"""
|
25
29
|
<html>
|
@@ -27,7 +31,7 @@ Feature: Article
|
|
27
31
|
<title>Simple Article</title>
|
28
32
|
</head>
|
29
33
|
<body>
|
30
|
-
<p>article content</p>
|
34
|
+
<div class='article'><p>article content</p></div>
|
31
35
|
</body>
|
32
36
|
</html>
|
33
37
|
|
@@ -14,6 +14,14 @@ Given /^the layout template:$/ do |contents|
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
Given /^the article template:$/ do |contents|
|
18
|
+
templates_path = File.join(File.dirname(__FILE__), '..', '..', 'templates')
|
19
|
+
FileUtils.mkdir_p(templates_path)
|
20
|
+
File.open(File.join(templates_path, 'article.haml'), 'w') do |file|
|
21
|
+
file.write(contents)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
17
25
|
Given /^I visit "([^"]*)"$/ do |url|
|
18
26
|
visit "/#{url}"
|
19
27
|
end
|
data/lib/akki/application.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'sinatra/base'
|
2
2
|
require 'yaml'
|
3
|
+
require 'ostruct'
|
3
4
|
require 'akki/article'
|
4
5
|
|
5
6
|
module Akki
|
@@ -13,8 +14,14 @@ module Akki
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def render article
|
17
|
+
scope = OpenStruct.new
|
18
|
+
scope.article = article
|
16
19
|
layout = File.read('templates/layout.haml')
|
17
|
-
|
20
|
+
article_layout = File.read('templates/article.haml')
|
21
|
+
|
22
|
+
Haml::Engine.new(layout).render(scope) do
|
23
|
+
Haml::Engine.new(article_layout).render(binding)
|
24
|
+
end
|
18
25
|
end
|
19
26
|
end
|
20
27
|
end
|
data/lib/akki/version.rb
CHANGED
data/spec/application_spec.rb
CHANGED
@@ -12,7 +12,9 @@ module Akki
|
|
12
12
|
before do
|
13
13
|
@article = mock :article
|
14
14
|
@article.stub!(:render).and_return 'article content'
|
15
|
-
@article.stub!(:title)
|
15
|
+
@article.stub!(:title).and_return 'article title'
|
16
|
+
File.stub!(:read).with('templates/layout.haml').and_return '%div= yield'
|
17
|
+
File.stub!(:read).with('templates/article.haml').and_return '%p= article.render'
|
16
18
|
Article.stub!(:from_file).and_return @article
|
17
19
|
end
|
18
20
|
|
@@ -26,10 +28,15 @@ module Akki
|
|
26
28
|
get '/2011/10/23/simple-article'
|
27
29
|
end
|
28
30
|
|
29
|
-
it "
|
30
|
-
File.stub!(:read).and_return '%p hello'
|
31
|
+
it "renders the article inside an article template" do
|
31
32
|
get '/2011/10/23/simple-article'
|
32
|
-
last_response.body.should include '<p>
|
33
|
+
last_response.body.should include '<div><p>article content</p></div>'
|
34
|
+
end
|
35
|
+
|
36
|
+
it "passes the article through through to the layout when rendering" do
|
37
|
+
File.stub!(:read).with('templates/layout.haml').and_return '= article.title'
|
38
|
+
get '/2011/10/23/simple-article'
|
39
|
+
last_response.body.should include 'article title'
|
33
40
|
end
|
34
41
|
end
|
35
42
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: akki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08-
|
12
|
+
date: 2011-08-15 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sinatra
|
17
|
-
requirement: &
|
17
|
+
requirement: &70103560445100 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70103560445100
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: haml
|
28
|
-
requirement: &
|
28
|
+
requirement: &70103560444680 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70103560444680
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rspec
|
39
|
-
requirement: &
|
39
|
+
requirement: &70103560444260 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70103560444260
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: cucumber
|
50
|
-
requirement: &
|
50
|
+
requirement: &70103560443840 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70103560443840
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: capybara
|
61
|
-
requirement: &
|
61
|
+
requirement: &70103560443420 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70103560443420
|
70
70
|
description: ''
|
71
71
|
email:
|
72
72
|
- andrew.vos@gmail.com
|