nesta 0.9.13 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/{spec/spec.opts → .rspec} +0 -0
- data/.travis.yml +3 -2
- data/CHANGES +130 -1
- data/Gemfile +1 -8
- data/Gemfile.lock +68 -51
- data/LICENSE +1 -1
- data/README.md +38 -6
- data/Rakefile +2 -5
- data/bin/nesta +59 -3
- data/config.ru +3 -0
- data/lib/nesta.rb +1 -1
- data/lib/nesta/app.rb +20 -17
- data/lib/nesta/commands.rb +6 -3
- data/lib/nesta/config.rb +52 -15
- data/lib/nesta/helpers.rb +30 -3
- data/lib/nesta/models.rb +48 -30
- data/lib/nesta/navigation.rb +32 -12
- data/lib/nesta/overrides.rb +5 -5
- data/lib/nesta/version.rb +1 -1
- data/nesta.gemspec +9 -10
- data/smoke-test.sh +102 -0
- data/spec/atom_spec.rb +52 -49
- data/spec/commands_spec.rb +22 -16
- data/spec/config_spec.rb +66 -6
- data/spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb +1 -3
- data/spec/model_factory.rb +16 -16
- data/spec/models_spec.rb +197 -144
- data/spec/overrides_spec.rb +21 -21
- data/spec/page_spec.rb +182 -136
- data/spec/sitemap_spec.rb +48 -43
- data/spec/spec_helper.rb +32 -17
- data/templates/Gemfile +5 -2
- data/templates/config/config.yml +13 -13
- data/templates/config/deploy.rb +2 -2
- data/templates/index.haml +2 -0
- data/templates/themes/app.rb +1 -1
- data/templates/themes/views/layout.haml +7 -0
- data/templates/themes/views/master.sass +3 -0
- data/templates/themes/views/page.haml +1 -0
- data/views/atom.haml +3 -3
- data/views/comments.haml +1 -1
- data/views/error.haml +1 -1
- data/views/feed.haml +1 -1
- data/views/layout.haml +6 -3
- data/views/master.sass +143 -133
- data/views/mixins.sass +53 -28
- data/views/normalize.scss +396 -0
- data/views/page_meta.haml +2 -2
- data/views/sitemap.haml +2 -2
- data/views/summaries.haml +2 -2
- metadata +155 -202
- data/lib/nesta/cache.rb +0 -138
data/lib/nesta/navigation.rb
CHANGED
@@ -2,10 +2,10 @@ module Nesta
|
|
2
2
|
module Navigation
|
3
3
|
module Renderers
|
4
4
|
def display_menu(menu, options = {})
|
5
|
-
defaults = { :
|
5
|
+
defaults = { class: nil, levels: 2 }
|
6
6
|
options = defaults.merge(options)
|
7
7
|
if options[:levels] > 0
|
8
|
-
haml_tag :ul, :
|
8
|
+
haml_tag :ul, class: options[:class] do
|
9
9
|
menu.each do |item|
|
10
10
|
display_menu_item(item, options)
|
11
11
|
end
|
@@ -17,14 +17,14 @@ module Nesta
|
|
17
17
|
if item.respond_to?(:each)
|
18
18
|
if (options[:levels] - 1) > 0
|
19
19
|
haml_tag :li do
|
20
|
-
display_menu(item, :
|
20
|
+
display_menu(item, levels: (options[:levels] - 1))
|
21
21
|
end
|
22
22
|
end
|
23
23
|
else
|
24
|
-
html_class = current_item?(item) ?
|
25
|
-
haml_tag :li, :
|
26
|
-
haml_tag :a, :<, :
|
27
|
-
haml_concat item
|
24
|
+
html_class = current_item?(item) ? current_menu_item_class : nil
|
25
|
+
haml_tag :li, class: html_class do
|
26
|
+
haml_tag :a, :<, href: path_to(item.abspath) do
|
27
|
+
haml_concat link_text(item)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -41,25 +41,45 @@ module Nesta
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def display_breadcrumbs(options = {})
|
44
|
-
haml_tag :ul, :
|
44
|
+
haml_tag :ul, class: options[:class] do
|
45
45
|
breadcrumb_ancestors[0...-1].each do |page|
|
46
46
|
haml_tag :li do
|
47
|
-
haml_tag :a, :<, :
|
48
|
-
|
47
|
+
haml_tag :a, :<, href: path_to(page.abspath), itemprop: 'url' do
|
48
|
+
haml_tag :span, :<, itemprop: 'title' do
|
49
|
+
haml_concat link_text(page)
|
50
|
+
end
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
52
|
-
haml_tag(:li
|
54
|
+
haml_tag(:li, class: current_breadcrumb_class) do
|
55
|
+
haml_concat link_text(@page)
|
56
|
+
end
|
53
57
|
end
|
54
58
|
end
|
55
59
|
|
60
|
+
def link_text(page)
|
61
|
+
page.link_text
|
62
|
+
rescue LinkTextNotSet
|
63
|
+
return 'Home' if page.abspath == '/'
|
64
|
+
raise
|
65
|
+
end
|
66
|
+
|
56
67
|
def breadcrumb_label(page)
|
57
|
-
(
|
68
|
+
Nesta.deprecated('breadcrumb_label', 'use link_text')
|
69
|
+
link_text(page)
|
58
70
|
end
|
59
71
|
|
60
72
|
def current_item?(item)
|
61
73
|
request.path == item.abspath
|
62
74
|
end
|
75
|
+
|
76
|
+
def current_menu_item_class
|
77
|
+
'current'
|
78
|
+
end
|
79
|
+
|
80
|
+
def current_breadcrumb_class
|
81
|
+
nil
|
82
|
+
end
|
63
83
|
end
|
64
84
|
end
|
65
85
|
end
|
data/lib/nesta/overrides.rb
CHANGED
@@ -29,15 +29,15 @@ module Nesta
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.load_local_app
|
32
|
-
|
33
|
-
|
32
|
+
app_file = Nesta::Path.local('app.rb')
|
33
|
+
require app_file if File.exist?(app_file)
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.load_theme_app
|
37
37
|
if Nesta::Config.theme
|
38
|
-
|
38
|
+
app_file = Nesta::Path.themes(Nesta::Config.theme, 'app.rb')
|
39
|
+
require app_file if File.exist?(app_file)
|
39
40
|
end
|
40
|
-
rescue LoadError
|
41
41
|
end
|
42
42
|
|
43
43
|
private
|
@@ -49,7 +49,7 @@ module Nesta
|
|
49
49
|
[local_view_path, theme_view_path].each do |path|
|
50
50
|
engines.each do |engine|
|
51
51
|
if template_exists?(engine, path, template)
|
52
|
-
return { :
|
52
|
+
return { views: path }, engine
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
data/lib/nesta/version.rb
CHANGED
data/nesta.gemspec
CHANGED
@@ -31,20 +31,19 @@ EOF
|
|
31
31
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
32
32
|
s.require_paths = ["lib"]
|
33
33
|
|
34
|
-
s.add_dependency('haml', '
|
35
|
-
s.add_dependency('sass', '
|
36
|
-
s.add_dependency('rdiscount', '~> 1
|
34
|
+
s.add_dependency('haml', '>= 3.1')
|
35
|
+
s.add_dependency('sass', '>= 3.1')
|
36
|
+
s.add_dependency('rdiscount', '~> 2.1')
|
37
37
|
s.add_dependency('RedCloth', '~> 4.2')
|
38
|
-
s.add_dependency('sinatra', '~> 1.
|
39
|
-
s.add_dependency('rack', '
|
40
|
-
|
38
|
+
s.add_dependency('sinatra', '~> 1.4')
|
39
|
+
s.add_dependency('rack', '>= 1.3')
|
40
|
+
|
41
41
|
# Useful in development
|
42
|
-
s.
|
42
|
+
s.add_development_dependency('mr-sparkle', '>= 0.0.2')
|
43
43
|
|
44
44
|
# Test libraries
|
45
|
-
s.add_development_dependency('hpricot', '0.8.4')
|
46
45
|
s.add_development_dependency('rack-test', '0.6.1')
|
47
|
-
s.add_development_dependency('rspec', '
|
48
|
-
s.add_development_dependency('rspec_hpricot_matchers', '1.0')
|
46
|
+
s.add_development_dependency('rspec', '~> 2.14.0')
|
49
47
|
s.add_development_dependency('test-unit', '1.2.3')
|
48
|
+
s.add_development_dependency('webrat', '~> 0.7.3')
|
50
49
|
end
|
data/smoke-test.sh
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# This script just makes it easy to test that Nesta can install a new
|
4
|
+
# site, launch it, and that it runs properly on supported versions of
|
5
|
+
# Ruby.
|
6
|
+
#
|
7
|
+
# It assumes you've got the relevant versions of Ruby installed locally
|
8
|
+
# via rbenv.
|
9
|
+
|
10
|
+
|
11
|
+
RUBIES="1.9.3-p392 2.0.0-p353 2.1.0 2.1.1"
|
12
|
+
|
13
|
+
|
14
|
+
## Functions
|
15
|
+
|
16
|
+
log()
|
17
|
+
{
|
18
|
+
cat <<-EOF
|
19
|
+
|
20
|
+
###############################################################################
|
21
|
+
##
|
22
|
+
## $1
|
23
|
+
##
|
24
|
+
###############################################################################
|
25
|
+
|
26
|
+
EOF
|
27
|
+
}
|
28
|
+
|
29
|
+
nesta_version()
|
30
|
+
{
|
31
|
+
grep VERSION lib/nesta/version.rb | sed -e 's/ //g' | cut -f 2 -d "'"
|
32
|
+
}
|
33
|
+
|
34
|
+
gem_file()
|
35
|
+
{
|
36
|
+
echo "nesta-$(nesta_version).gem"
|
37
|
+
}
|
38
|
+
|
39
|
+
get_ruby()
|
40
|
+
{
|
41
|
+
# Why not just use RUBY_VERSION? Because tmux can prevent rbenv from
|
42
|
+
# changing the local version if the RBENV_VERSION variable is set in
|
43
|
+
# another session. If we don't notice we'll think we've been testing
|
44
|
+
# Nesta under multiple versions, but in fact we'll just have been
|
45
|
+
# testing it under the same copy of Ruby every time.
|
46
|
+
ruby --version | cut -f 2 -d ' '
|
47
|
+
}
|
48
|
+
|
49
|
+
run_tests()
|
50
|
+
{
|
51
|
+
bundle install
|
52
|
+
bundle exec rake spec
|
53
|
+
}
|
54
|
+
|
55
|
+
build_and_install()
|
56
|
+
{
|
57
|
+
echo rm -f pkg/$(gem_file)
|
58
|
+
bundle install
|
59
|
+
bundle exec rake install
|
60
|
+
}
|
61
|
+
|
62
|
+
site_folder()
|
63
|
+
{
|
64
|
+
echo "test-site-${RUBY_VERSION}"
|
65
|
+
}
|
66
|
+
|
67
|
+
create_and_test_new_site()
|
68
|
+
{
|
69
|
+
bundle exec nesta new $(site_folder)
|
70
|
+
cd $(site_folder)
|
71
|
+
echo "gem 'haml-contrib'" >> Gemfile
|
72
|
+
bundle install
|
73
|
+
bundle exec nesta demo:content
|
74
|
+
|
75
|
+
log "Starting server in $(site_folder)"
|
76
|
+
set +e
|
77
|
+
bundle exec mr-sparkle
|
78
|
+
set -e
|
79
|
+
|
80
|
+
cd - >/dev/null
|
81
|
+
rm -rf $(site_folder)
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
## Main program
|
86
|
+
|
87
|
+
set -e
|
88
|
+
[ -n "$DEBUG" ] && set -x
|
89
|
+
|
90
|
+
for RUBY_VERSION in $RUBIES; do
|
91
|
+
rbenv local $RUBY_VERSION
|
92
|
+
log "Rebuilding nesta gem with Ruby $(get_ruby)"
|
93
|
+
|
94
|
+
run_tests
|
95
|
+
build_and_install
|
96
|
+
create_and_test_new_site
|
97
|
+
|
98
|
+
read -p "Was Ruby ${RUBY_VERSION} okay? Press return to continue..."
|
99
|
+
done
|
100
|
+
|
101
|
+
rm -f .ruby-version
|
102
|
+
log "Reset Ruby version to $(get_ruby)"
|
data/spec/atom_spec.rb
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('model_factory', File.dirname(__FILE__))
|
|
4
4
|
describe "atom feed" do
|
5
5
|
include ModelFactory
|
6
6
|
include RequestSpecHelper
|
7
|
-
|
7
|
+
|
8
8
|
before(:each) do
|
9
9
|
stub_configuration
|
10
10
|
stub_config_key("author", {
|
@@ -14,41 +14,41 @@ describe "atom feed" do
|
|
14
14
|
})
|
15
15
|
get "/articles.xml"
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
after(:each) do
|
19
19
|
remove_temp_directory
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
it "should render successfully" do
|
23
23
|
last_response.should be_ok
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should use Atom's XML namespace" do
|
27
|
-
|
27
|
+
assert_xpath("//feed[@xmlns='http://www.w3.org/2005/Atom']")
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should have an ID element" do
|
31
|
-
|
31
|
+
assert_selector("id:contains('tag:example.org,2009:/')")
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "should have an alternate link element" do
|
35
|
-
|
35
|
+
assert_xpath("//feed/link[@rel='alternate'][@href='http://example.org/']")
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should have a self link element" do
|
39
|
-
|
40
|
-
"
|
39
|
+
assert_xpath(
|
40
|
+
"//feed/link[@rel='self'][@href='http://example.org/articles.xml']")
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
it "should have title and subtitle" do
|
44
|
-
|
45
|
-
|
44
|
+
assert_xpath("//feed/title[@type='text']", content: "My blog")
|
45
|
+
assert_xpath("//feed/subtitle[@type='text']", content: "about stuff")
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
it "should include the author details" do
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
assert_xpath("//feed/author/name", content: "Fred Bloggs")
|
50
|
+
assert_xpath("//feed/author/uri", content: "http://fredbloggs.com")
|
51
|
+
assert_xpath("//feed/author/email", content: "fred@fredbloggs.com")
|
52
52
|
end
|
53
53
|
|
54
54
|
describe "for article" do
|
@@ -58,81 +58,84 @@ describe "atom feed" do
|
|
58
58
|
@category = create_category
|
59
59
|
11.times do |i|
|
60
60
|
@articles << create_article(
|
61
|
-
:
|
62
|
-
:
|
63
|
-
:
|
61
|
+
heading: "Article #{i + 1}",
|
62
|
+
path: "article-#{i + 1}",
|
63
|
+
metadata: {
|
64
64
|
"categories" => @category.path,
|
65
65
|
"date" => "#{i + 1} January 2009"
|
66
66
|
},
|
67
|
-
:
|
67
|
+
content: "Blah blah\n\n## #{@heading}\n\n[link](/foo)"
|
68
68
|
)
|
69
69
|
end
|
70
70
|
@article = @articles.last
|
71
71
|
get "/articles.xml"
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
it "should set title" do
|
75
|
-
|
75
|
+
assert_xpath("//entry/title", content: "Article 11")
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
it "should link to the HTML version" do
|
79
79
|
url = "http://example.org/#{@article.path}"
|
80
|
-
|
81
|
-
"entry/link[@href='#{url}'][@rel=alternate][@type='text/html']")
|
80
|
+
assert_xpath(
|
81
|
+
"//entry/link[@href='#{url}'][@rel='alternate'][@type='text/html']")
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should define unique ID" do
|
85
|
-
|
86
|
-
|
85
|
+
assert_xpath(
|
86
|
+
"//entry/id",
|
87
|
+
content: "tag:example.org,2009-01-11:#{@article.abspath}"
|
88
|
+
)
|
87
89
|
end
|
88
|
-
|
90
|
+
|
89
91
|
it "should specify date published" do
|
90
|
-
|
92
|
+
assert_xpath("//entry/published", content: "2009-01-11T00:00:00+00:00")
|
91
93
|
end
|
92
94
|
|
93
95
|
it "should specify article categories" do
|
94
|
-
|
96
|
+
assert_xpath("//category[@term='#{@category.permalink}']")
|
95
97
|
end
|
96
98
|
|
97
99
|
it "should have article content" do
|
98
|
-
|
99
|
-
|
100
|
+
assert_xpath "//entry/content[@type='html']" do |a|
|
101
|
+
a.should contain "<h2>#{@heading}</h2>"
|
102
|
+
end
|
100
103
|
end
|
101
|
-
|
104
|
+
|
102
105
|
it "should include hostname in URLs" do
|
103
|
-
|
104
|
-
|
106
|
+
assert_xpath("//entry/content") do |c|
|
107
|
+
c.should contain 'http://example.org/foo'
|
108
|
+
end
|
105
109
|
end
|
106
|
-
|
110
|
+
|
107
111
|
it "should not include article heading in content" do
|
108
|
-
body.should_not
|
112
|
+
body.should_not have_selector("summary:contains('#{@article.heading}')")
|
109
113
|
end
|
110
|
-
|
114
|
+
|
111
115
|
it "should list the latest 10 articles" do
|
112
|
-
|
113
|
-
body.should_not have_tag("entry/title", @articles.first.heading)
|
116
|
+
assert_selector("entry", count: 10)
|
114
117
|
end
|
115
118
|
end
|
116
|
-
|
119
|
+
|
117
120
|
describe "page with no date" do
|
118
121
|
before(:each) do
|
119
|
-
create_category(:
|
122
|
+
create_category(path: "no-date")
|
120
123
|
get "/articles.xml"
|
121
124
|
end
|
122
125
|
|
123
126
|
it "should not appear in feed" do
|
124
|
-
body.should_not
|
127
|
+
body.should_not have_selector("entry id:contains('no-date')")
|
125
128
|
end
|
126
129
|
end
|
127
|
-
|
130
|
+
|
128
131
|
describe "article with atom ID" do
|
129
132
|
it "should use pre-defined ID" do
|
130
|
-
create_article(:
|
133
|
+
create_article(metadata: {
|
131
134
|
"date" => "1 January 2009",
|
132
135
|
"atom id" => "use-this-id"
|
133
136
|
})
|
134
137
|
get "/articles.xml"
|
135
|
-
|
138
|
+
assert_xpath("//entry/id", content: "use-this-id")
|
136
139
|
end
|
137
140
|
end
|
138
141
|
end
|
data/spec/commands_spec.rb
CHANGED
@@ -63,7 +63,7 @@ describe "nesta" do
|
|
63
63
|
describe "--git" do
|
64
64
|
before(:each) do
|
65
65
|
@command = Nesta::Commands::New.new(@project_path, 'git' => '')
|
66
|
-
@command.stub
|
66
|
+
@command.stub(:system)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should create a .gitignore file" do
|
@@ -111,13 +111,13 @@ describe "nesta" do
|
|
111
111
|
before(:each) do
|
112
112
|
@config_path = project_path('config/config.yml')
|
113
113
|
FileUtils.mkdir_p(File.dirname(@config_path))
|
114
|
-
Nesta::Config.stub
|
114
|
+
Nesta::Config.stub(:yaml_path).and_return(@config_path)
|
115
115
|
create_config_yaml('content: path/to/content')
|
116
|
-
Nesta::App.stub
|
116
|
+
Nesta::App.stub(:root).and_return(@project_path)
|
117
117
|
@repo_url = 'git://github.com/gma/nesta-demo-content.git'
|
118
118
|
@demo_path = project_path('content-demo')
|
119
119
|
@command = Nesta::Commands::Demo::Content.new
|
120
|
-
@command.stub
|
120
|
+
@command.stub(:system)
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should clone the repository" do
|
@@ -169,10 +169,10 @@ describe "nesta" do
|
|
169
169
|
|
170
170
|
describe "edit" do
|
171
171
|
before(:each) do
|
172
|
-
Nesta::Config.stub
|
172
|
+
Nesta::Config.stub(:content_path).and_return('content')
|
173
173
|
@page_path = 'path/to/page.mdown'
|
174
174
|
@command = Nesta::Commands::Edit.new(@page_path)
|
175
|
-
@command.stub
|
175
|
+
@command.stub(:system)
|
176
176
|
end
|
177
177
|
|
178
178
|
it "should launch the editor" do
|
@@ -185,7 +185,7 @@ describe "nesta" do
|
|
185
185
|
it "should not try and launch an editor if environment not setup" do
|
186
186
|
ENV.delete('EDITOR')
|
187
187
|
@command.should_not_receive(:system)
|
188
|
-
$stderr.stub
|
188
|
+
$stderr.stub(:puts)
|
189
189
|
@command.execute
|
190
190
|
end
|
191
191
|
end
|
@@ -199,7 +199,7 @@ describe "nesta" do
|
|
199
199
|
Dir.mkdir(@plugins_path)
|
200
200
|
Dir.chdir(@plugins_path)
|
201
201
|
@command = Nesta::Commands::Plugin::Create.new(@name)
|
202
|
-
@command.stub
|
202
|
+
@command.stub(:system)
|
203
203
|
end
|
204
204
|
|
205
205
|
after(:each) do
|
@@ -258,8 +258,8 @@ describe "nesta" do
|
|
258
258
|
it "should specify plugin gem's dependencies" do
|
259
259
|
@command.execute
|
260
260
|
text = File.read(@gem_spec)
|
261
|
-
text.should include('
|
262
|
-
text.should include('
|
261
|
+
text.should include('gem.add_dependency("nesta", ">= 0.9.11")')
|
262
|
+
text.should include('gem.add_development_dependency("rake")')
|
263
263
|
end
|
264
264
|
end
|
265
265
|
end
|
@@ -270,8 +270,8 @@ describe "nesta" do
|
|
270
270
|
@theme_dir = 'themes/mine'
|
271
271
|
FileUtils.mkdir_p(File.join(@theme_dir, '.git'))
|
272
272
|
@command = Nesta::Commands::Theme::Install.new(@repo_url)
|
273
|
-
@command.stub
|
274
|
-
@command.stub
|
273
|
+
@command.stub(:enable)
|
274
|
+
@command.stub(:system)
|
275
275
|
end
|
276
276
|
|
277
277
|
after(:each) do
|
@@ -301,7 +301,7 @@ describe "nesta" do
|
|
301
301
|
@other_theme_dir = 'themes/mytheme'
|
302
302
|
FileUtils.mkdir_p(File.join(@other_theme_dir, '.git'))
|
303
303
|
@command = Nesta::Commands::Theme::Install.new(@repo_url)
|
304
|
-
@command.stub
|
304
|
+
@command.stub(:enable)
|
305
305
|
end
|
306
306
|
|
307
307
|
after(:each) do
|
@@ -319,7 +319,7 @@ describe "nesta" do
|
|
319
319
|
describe "theme:enable" do
|
320
320
|
before(:each) do
|
321
321
|
config = temp_path('config.yml')
|
322
|
-
Nesta::Config.stub
|
322
|
+
Nesta::Config.stub(:yaml_path).and_return(config)
|
323
323
|
@name = 'mytheme'
|
324
324
|
@command = Nesta::Commands::Theme::Enable.new(@name)
|
325
325
|
end
|
@@ -362,7 +362,7 @@ describe "nesta" do
|
|
362
362
|
end
|
363
363
|
|
364
364
|
before(:each) do
|
365
|
-
Nesta::App.stub
|
365
|
+
Nesta::App.stub(:root).and_return(TempFileHelper::TEMP_DIR)
|
366
366
|
@name = 'my-new-theme'
|
367
367
|
Nesta::Commands::Theme::Create.new(@name).execute
|
368
368
|
end
|
@@ -381,9 +381,15 @@ describe "nesta" do
|
|
381
381
|
should_exist('app.rb')
|
382
382
|
end
|
383
383
|
|
384
|
-
it "should create public and
|
384
|
+
it "should create public and views directories" do
|
385
385
|
should_exist("public/#{@name}")
|
386
386
|
should_exist('views')
|
387
387
|
end
|
388
|
+
|
389
|
+
it "should copy the default view templates into views" do
|
390
|
+
%w(layout.haml page.haml master.sass).each do |file|
|
391
|
+
should_exist("views/#{file}")
|
392
|
+
end
|
393
|
+
end
|
388
394
|
end
|
389
395
|
end
|