ruhoh 2.5 → 2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/bin/ruhoh +10 -3
- data/features/_root.feature +11 -0
- data/features/data.feature +78 -0
- data/features/javascripts.feature +36 -0
- data/features/permalinks.feature +23 -0
- data/features/plugins.feature +84 -0
- data/features/sort_order.feature +121 -0
- data/features/step_defs.rb +3 -3
- data/features/support/helpers.rb +3 -5
- data/history.json +21 -0
- data/lib/ruhoh.rb +28 -123
- data/lib/ruhoh/base/collectable.rb +273 -0
- data/lib/ruhoh/base/compilable.rb +30 -0
- data/lib/ruhoh/base/compilable_asset.rb +30 -0
- data/lib/ruhoh/base/model_viewable.rb +30 -0
- data/lib/ruhoh/base/modelable.rb +44 -0
- data/lib/ruhoh/base/page_like.rb +111 -0
- data/lib/ruhoh/base/page_viewable.rb +92 -0
- data/lib/ruhoh/base/routable.rb +20 -0
- data/lib/ruhoh/base/watchable.rb +18 -0
- data/lib/ruhoh/cascade.rb +93 -0
- data/lib/ruhoh/client.rb +1 -3
- data/lib/ruhoh/collections.rb +2 -1
- data/lib/ruhoh/config.rb +67 -0
- data/lib/ruhoh/console_methods.rb +0 -2
- data/lib/ruhoh/parse.rb +7 -5
- data/lib/ruhoh/plugins/initializer.rb +24 -0
- data/lib/ruhoh/plugins/local_plugins_plugin.rb +10 -0
- data/lib/ruhoh/plugins/plugin.rb +27 -0
- data/lib/ruhoh/programs/compile.rb +2 -6
- data/lib/ruhoh/programs/preview.rb +5 -2
- data/lib/ruhoh/programs/watch.rb +4 -6
- data/lib/ruhoh/publish/rsync.rb +2 -2
- data/lib/ruhoh/resources/_base/collection.rb +6 -0
- data/lib/ruhoh/resources/_base/compiler.rb +3 -0
- data/lib/ruhoh/resources/_base/model.rb +3 -0
- data/lib/ruhoh/resources/_base/model_view.rb +3 -0
- data/lib/ruhoh/resources/_base/watcher.rb +4 -0
- data/lib/ruhoh/resources/data/collection.rb +30 -9
- data/lib/ruhoh/resources/javascripts/collection_view.rb +5 -1
- data/lib/ruhoh/resources/javascripts/model_view.rb +15 -0
- data/lib/ruhoh/resources/layouts/client.rb +1 -1
- data/lib/ruhoh/resources/pages/client.rb +2 -2
- data/lib/ruhoh/resources/pages/collection.rb +2 -21
- data/lib/ruhoh/resources/theme/compiler.rb +2 -2
- data/lib/ruhoh/resources/widgets/collection.rb +2 -2
- data/lib/ruhoh/routes.rb +1 -1
- data/lib/ruhoh/summarizer.rb +2 -2
- data/lib/ruhoh/ui/dashboard.rb +13 -0
- data/lib/ruhoh/ui/page_not_found.rb +3 -2
- data/lib/ruhoh/url_slug.rb +23 -9
- data/lib/ruhoh/version.rb +1 -1
- data/lib/ruhoh/views/master_view.rb +1 -1
- data/spec/lib/ruhoh/plugins/initializer_spec.rb +43 -0
- data/spec/lib/ruhoh/plugins/plugin_spec.rb +40 -0
- data/spec/spec_helper.rb +1 -0
- data/system/config.json +21 -0
- data/system/{dash/index.html → dashboard.html} +1 -1
- data/{lib/ruhoh/ui → system}/page_not_found.html +0 -0
- data/system/plugins/sprockets/compiler.rb +1 -0
- data/system/widgets/comments/disqus.html +1 -1
- metadata +34 -15
- data/lib/ruhoh/base/collection.rb +0 -284
- data/lib/ruhoh/base/compiler.rb +0 -67
- data/lib/ruhoh/base/model.rb +0 -161
- data/lib/ruhoh/base/model_view.rb +0 -129
- data/lib/ruhoh/base/watcher.rb +0 -25
- data/lib/ruhoh/resources/dash/collection.rb +0 -10
- data/lib/ruhoh/resources/dash/model.rb +0 -5
- data/lib/ruhoh/resources/dash/model_view.rb +0 -5
- data/lib/ruhoh/resources/dash/previewer.rb +0 -13
data/Gemfile
CHANGED
data/bin/ruhoh
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
4
|
|
5
|
+
# Set up gems listed in the Gemfile.
|
6
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
7
|
+
if File.exists?(ENV['BUNDLE_GEMFILE'])
|
8
|
+
require 'bundler/setup'
|
9
|
+
Bundler.require :default
|
10
|
+
end
|
11
|
+
|
5
12
|
require 'ruhoh'
|
6
13
|
require 'ruhoh/version'
|
7
14
|
require 'ruhoh/client'
|
@@ -13,7 +20,7 @@ options = Options.new
|
|
13
20
|
|
14
21
|
opt_parser = OptionParser.new do |opts|
|
15
22
|
opts.banner = 'Use `ruhoh help` for full command list.'
|
16
|
-
|
23
|
+
|
17
24
|
opts.on("--hg", "Use mercurial (hg) instead of git for source control.") do
|
18
25
|
options.hg = true
|
19
26
|
end
|
@@ -21,13 +28,13 @@ opt_parser = OptionParser.new do |opts|
|
|
21
28
|
opts.on("-v", "--[no-]verbose", "Run verbosely. For pages, shows extra title, url meta-data.") do |v|
|
22
29
|
options.verbose = v
|
23
30
|
end
|
24
|
-
|
31
|
+
|
25
32
|
opts.on("--version", "Display current gem and ruhoh specification versions.") do
|
26
33
|
puts "ruhoh " + Ruhoh::VERSION
|
27
34
|
puts "RuhohSpec " + Ruhoh::RuhohSpec
|
28
35
|
exit 0
|
29
36
|
end
|
30
|
-
|
37
|
+
|
31
38
|
end
|
32
39
|
opt_parser.parse!
|
33
40
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: _root collection
|
2
|
+
As a content publisher
|
3
|
+
I want to include pages at my domain's root
|
4
|
+
so I can organize my content.
|
5
|
+
|
6
|
+
Scenario: Adding a page to _root folder
|
7
|
+
Given some files with values:
|
8
|
+
| file |
|
9
|
+
| _root/index.html |
|
10
|
+
When I compile my site
|
11
|
+
Then my compiled site should have the file "index.html"
|
data/features/data.feature
CHANGED
@@ -61,3 +61,81 @@ Feature: Data
|
|
61
61
|
And this file should contain the content node "city|alhambra"
|
62
62
|
And this file should contain the content node "li|mango"
|
63
63
|
And this file should contain the content node "li|kiwi"
|
64
|
+
|
65
|
+
|
66
|
+
Scenario: Defining a basic data structure in data.json and merging with a theme data.json
|
67
|
+
Given a config file with values:
|
68
|
+
| theme-test | { "use" : "theme" } |
|
69
|
+
And the file "data.json" with body:
|
70
|
+
"""
|
71
|
+
{
|
72
|
+
"address": {
|
73
|
+
"city": "alhambra"
|
74
|
+
},
|
75
|
+
"name": "jade",
|
76
|
+
"fruits": [
|
77
|
+
"mango",
|
78
|
+
"kiwi"
|
79
|
+
]
|
80
|
+
}
|
81
|
+
"""
|
82
|
+
And the file "theme-test/data.json" with body:
|
83
|
+
"""
|
84
|
+
{
|
85
|
+
"address": {
|
86
|
+
"city": "Berkeley"
|
87
|
+
},
|
88
|
+
"greeting": "Hai!"
|
89
|
+
}
|
90
|
+
"""
|
91
|
+
And the file "_root/index.html" with body:
|
92
|
+
"""
|
93
|
+
<name>{{ data.name }}</name>
|
94
|
+
<city>{{ data.address.city }}</city>
|
95
|
+
<greeting>{{ data.greeting }}</greeting>
|
96
|
+
<ul>
|
97
|
+
{{# data.fruits }}
|
98
|
+
<li>{{ . }}</li>
|
99
|
+
{{/ data.fruits }}
|
100
|
+
</ul>
|
101
|
+
"""
|
102
|
+
When I compile my site
|
103
|
+
Then my compiled site should have the file "index.html"
|
104
|
+
And this file should contain the content node "name|jade"
|
105
|
+
And this file should contain the content node "city|Berkeley"
|
106
|
+
And this file should contain the content node "li|mango"
|
107
|
+
And this file should contain the content node "li|kiwi"
|
108
|
+
And this file should contain the content node "greeting|Hai!"
|
109
|
+
|
110
|
+
Scenario: Defining a basic data structure in custom data collection
|
111
|
+
Given a config file with values:
|
112
|
+
| meta | { "use" : "data" } |
|
113
|
+
Given the file "meta/data.json" with body:
|
114
|
+
"""
|
115
|
+
{
|
116
|
+
"address": {
|
117
|
+
"city": "alhambra"
|
118
|
+
},
|
119
|
+
"name": "jade",
|
120
|
+
"fruits": [
|
121
|
+
"mango",
|
122
|
+
"kiwi"
|
123
|
+
]
|
124
|
+
}
|
125
|
+
"""
|
126
|
+
And the file "_root/index.html" with body:
|
127
|
+
"""
|
128
|
+
<name>{{ meta.data.name }}</name>
|
129
|
+
<city>{{ meta.data.address.city }}</city>
|
130
|
+
<ul>
|
131
|
+
{{# meta.data.fruits }}
|
132
|
+
<li>{{ . }}</li>
|
133
|
+
{{/ meta.data.fruits }}
|
134
|
+
</ul>
|
135
|
+
"""
|
136
|
+
When I compile my site
|
137
|
+
Then my compiled site should have the file "index.html"
|
138
|
+
And this file should contain the content node "name|jade"
|
139
|
+
And this file should contain the content node "city|alhambra"
|
140
|
+
And this file should contain the content node "li|mango"
|
141
|
+
And this file should contain the content node "li|kiwi"
|
@@ -40,3 +40,39 @@ Feature: Javascripts
|
|
40
40
|
When I compile my site
|
41
41
|
Then my compiled site should have the file "index.html"
|
42
42
|
And this file should have the fingerprinted javascripts "base, app, custom"
|
43
|
+
|
44
|
+
Scenario: Using javascript objects to resolve url
|
45
|
+
Given some files with values:
|
46
|
+
| file | body |
|
47
|
+
| javascripts/base.js | var meep; |
|
48
|
+
| javascripts/app.js | console.log('haro world') |
|
49
|
+
| javascripts/custom.js | console.log('haro world') |
|
50
|
+
And the file "_root/index.html" with body:
|
51
|
+
"""
|
52
|
+
---
|
53
|
+
custom: base.js
|
54
|
+
---
|
55
|
+
{{# page.custom?to_javascripts }}
|
56
|
+
<script type="text/javascript" src="{{url}}"></script>
|
57
|
+
{{/ page.custom?to_javascripts }}
|
58
|
+
"""
|
59
|
+
When I compile my site
|
60
|
+
Then my compiled site should have the file "index.html"
|
61
|
+
And this file should have the fingerprinted javascripts "base"
|
62
|
+
|
63
|
+
Scenario: Using javascript object to resolve url and id
|
64
|
+
Given some files with values:
|
65
|
+
| file | body |
|
66
|
+
| javascripts/base.js | var meep; |
|
67
|
+
| javascripts/app.js | console.log('haro world') |
|
68
|
+
| javascripts/custom.js | console.log('haro world') |
|
69
|
+
And the file "_root/index.html" with body:
|
70
|
+
"""
|
71
|
+
{{# javascripts.all }}
|
72
|
+
<script type="text/javascript" id="{{id}}" src="{{url}}"></script>
|
73
|
+
{{/ javascripts.all }}
|
74
|
+
"""
|
75
|
+
When I compile my site
|
76
|
+
Then my compiled site should have the file "index.html"
|
77
|
+
And this file should have the fingerprinted javascripts "app, base, custom"
|
78
|
+
|
data/features/permalinks.feature
CHANGED
@@ -10,6 +10,13 @@ Feature: Page Permalinks
|
|
10
10
|
When I compile my site
|
11
11
|
Then my compiled site should have the file "essays/hello/index.html"
|
12
12
|
|
13
|
+
Scenario: Default Permalink format with nested file
|
14
|
+
Given some files with values:
|
15
|
+
| file | body |
|
16
|
+
| essays/one/two/hello.md | |
|
17
|
+
When I compile my site
|
18
|
+
Then my compiled site should have the file "essays/one/two/hello/index.html"
|
19
|
+
|
13
20
|
# in-page configuration
|
14
21
|
|
15
22
|
Scenario: Custom permalink format in page metadata.
|
@@ -54,6 +61,13 @@ Feature: Page Permalinks
|
|
54
61
|
When I compile my site
|
55
62
|
Then my compiled site should have the file "essays/2012/1/2/hello/index.html"
|
56
63
|
|
64
|
+
Scenario: Custom permalink format in page metadata using custom metadata attributes.
|
65
|
+
Given some files with values:
|
66
|
+
| file | permalink | title | arbitrary_name | body |
|
67
|
+
| essays/hello.md | /:path/:title/:arbitrary_name | Haro World | custom data | |
|
68
|
+
When I compile my site
|
69
|
+
Then my compiled site should have the file "essays/haro-world/custom-data/index.html"
|
70
|
+
|
57
71
|
Scenario: Custom permalink format in page metadata using explicit html extension
|
58
72
|
Given some files with values:
|
59
73
|
| file | permalink |
|
@@ -139,3 +153,12 @@ Feature: Page Permalinks
|
|
139
153
|
| essays/hello.md | 2012-01-02 | |
|
140
154
|
When I compile my site
|
141
155
|
Then my compiled site should have the file "essays/2012/1/2/hello/index.html"
|
156
|
+
|
157
|
+
Scenario: Custom permalink format in collection config using custom metadata
|
158
|
+
Given a config file with values:
|
159
|
+
| essays | { "permalink" : "/legacy/:custom_id/:rank" } |
|
160
|
+
And some files with values:
|
161
|
+
| file | custom_id | rank | body |
|
162
|
+
| essays/hello.md | 12345 | medium | |
|
163
|
+
When I compile my site
|
164
|
+
Then my compiled site should have the file "legacy/12345/medium/index.html"
|
@@ -0,0 +1,84 @@
|
|
1
|
+
Feature: Plugins
|
2
|
+
As a content publisher
|
3
|
+
I want to include custom plugins
|
4
|
+
so I have the freedom and power to customize my website and workflow.
|
5
|
+
|
6
|
+
Scenario: Loading a pages collection plugin from the plugins folder.
|
7
|
+
Given the file "plugins/pages_test.rb" with body:
|
8
|
+
"""
|
9
|
+
module PagesTest
|
10
|
+
def test_plugin_method
|
11
|
+
"Hi this is output from the test plugin"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
Ruhoh::Resources::Pages::CollectionView.send(:include, PagesTest)
|
15
|
+
"""
|
16
|
+
And the file "_root/index.html" with body:
|
17
|
+
"""
|
18
|
+
<output>{{ _root.test_plugin_method }}</output>
|
19
|
+
"""
|
20
|
+
When I compile my site
|
21
|
+
Then my compiled site should have the file "index.html"
|
22
|
+
And this file should contain the content node "output|Hi this is output from the test plugin"
|
23
|
+
|
24
|
+
Scenario: Loading a pages model plugin from the plugins folder.
|
25
|
+
Given some files with values:
|
26
|
+
| file | date | body |
|
27
|
+
| _root/index.html | 2013-12-01 | <date>{{ page.friendly_date }}</date> |
|
28
|
+
Given the file "plugins/paged_model_view_addons.rb" with body:
|
29
|
+
"""
|
30
|
+
module PagesModelViewAddons
|
31
|
+
def friendly_date
|
32
|
+
date.strftime("%B %d, %Y")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
Ruhoh.model('pages').send(:include, PagesModelViewAddons)
|
36
|
+
"""
|
37
|
+
When I compile my site
|
38
|
+
Then my compiled site should have the file "index.html"
|
39
|
+
And this file should contain the content node "date|December 01, 2013"
|
40
|
+
|
41
|
+
Scenario: Loading a custom converter from the plugins folder.
|
42
|
+
Given some files with values:
|
43
|
+
| file | body |
|
44
|
+
| _root/index.strip | <output>the quick brown fox jumps over the lazy dog</output> |
|
45
|
+
Given the file "plugins/strip_converter.rb" with body:
|
46
|
+
"""
|
47
|
+
class Ruhoh
|
48
|
+
module Converter
|
49
|
+
module Strip
|
50
|
+
def self.extensions
|
51
|
+
['.strip']
|
52
|
+
end
|
53
|
+
def self.convert(content)
|
54
|
+
content.gsub(/\s/, '')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
"""
|
60
|
+
When I compile my site
|
61
|
+
Then my compiled site should have the file "index.html"
|
62
|
+
And this file should contain the content node "output|thequickbrownfoxjumpsoverthelazydog"
|
63
|
+
|
64
|
+
Scenario: Loading a custom compiler from the plugins folder.
|
65
|
+
Given the file "plugins/test_compiler.rb" with body:
|
66
|
+
"""
|
67
|
+
class Ruhoh
|
68
|
+
module Compiler
|
69
|
+
class Test
|
70
|
+
def initialize(ruhoh)
|
71
|
+
@ruhoh = ruhoh
|
72
|
+
end
|
73
|
+
def run
|
74
|
+
File.open(@ruhoh.compiled_path("test-file.txt"), 'w:UTF-8') do |p|
|
75
|
+
p.puts "Domo's World ^_^"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
"""
|
82
|
+
When I compile my site
|
83
|
+
Then my compiled site should have the file "test-file.txt"
|
84
|
+
And this file should contain the content "Domo's World ^_^"
|
@@ -0,0 +1,121 @@
|
|
1
|
+
Feature: Page Sort Order
|
2
|
+
As a content publisher
|
3
|
+
I want to sort pages by a custom criteria
|
4
|
+
so my content makes intuitive sense to my audience.
|
5
|
+
|
6
|
+
Scenario: Default sort order - alpha title ascending
|
7
|
+
Given some files with values:
|
8
|
+
| file | body |
|
9
|
+
| essays/hello.md | |
|
10
|
+
| essays/zebra.md | |
|
11
|
+
| essays/apple.md | |
|
12
|
+
And the file "_root/index.md" with body:
|
13
|
+
"""
|
14
|
+
<essays>
|
15
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
16
|
+
</essays>
|
17
|
+
"""
|
18
|
+
When I compile my site
|
19
|
+
Then my compiled site should have the file "index.html"
|
20
|
+
And this file should contain the content node "essays|Apple-Hello-Zebra-"
|
21
|
+
|
22
|
+
Scenario: Sort order alpha title descending
|
23
|
+
Given a config file with value:
|
24
|
+
"""
|
25
|
+
{ "essays" : {"sort" : ["title", "desc"]} }
|
26
|
+
"""
|
27
|
+
And some files with values:
|
28
|
+
| file |
|
29
|
+
| essays/hello.md |
|
30
|
+
| essays/zebra.md |
|
31
|
+
| essays/apple.md |
|
32
|
+
And the file "_root/index.md" with body:
|
33
|
+
"""
|
34
|
+
<essays>
|
35
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
36
|
+
</essays>
|
37
|
+
"""
|
38
|
+
When I compile my site
|
39
|
+
Then my compiled site should have the file "index.html"
|
40
|
+
And this file should contain the content node "essays|Zebra-Hello-Apple-"
|
41
|
+
|
42
|
+
|
43
|
+
Scenario: Sort order date descending
|
44
|
+
Given a config file with value:
|
45
|
+
"""
|
46
|
+
{ "essays" : { "sort" : ["date", "desc"] } }
|
47
|
+
"""
|
48
|
+
And some files with values:
|
49
|
+
| file | date |
|
50
|
+
| essays/hello.md | 2013-12-01 |
|
51
|
+
| essays/zebra.md | 2013-12-10 |
|
52
|
+
| essays/apple.md | 2013-12-25 |
|
53
|
+
And the file "_root/index.md" with body:
|
54
|
+
"""
|
55
|
+
<essays>
|
56
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
57
|
+
</essays>
|
58
|
+
"""
|
59
|
+
When I compile my site
|
60
|
+
Then my compiled site should have the file "index.html"
|
61
|
+
And this file should contain the content node "essays|Apple-Zebra-Hello-"
|
62
|
+
|
63
|
+
Scenario: Sort order date ascending
|
64
|
+
Given a config file with value:
|
65
|
+
"""
|
66
|
+
{ "essays" : { "sort" : ["date", "asc"] } }
|
67
|
+
"""
|
68
|
+
And some files with values:
|
69
|
+
| file | date |
|
70
|
+
| essays/hello.md | 2013-12-01 |
|
71
|
+
| essays/zebra.md | 2013-12-10 |
|
72
|
+
| essays/apple.md | 2013-12-25 |
|
73
|
+
And the file "_root/index.md" with body:
|
74
|
+
"""
|
75
|
+
<essays>
|
76
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
77
|
+
</essays>
|
78
|
+
"""
|
79
|
+
When I compile my site
|
80
|
+
Then my compiled site should have the file "index.html"
|
81
|
+
And this file should contain the content node "essays|Hello-Zebra-Apple-"
|
82
|
+
|
83
|
+
Scenario: Sort order numerically coerced custom-attribute
|
84
|
+
Given a config file with value:
|
85
|
+
"""
|
86
|
+
{ "essays" : { "sort" : ["position", "asc"] } }
|
87
|
+
"""
|
88
|
+
And some files with values:
|
89
|
+
| file | position |
|
90
|
+
| essays/hello.md | 2 |
|
91
|
+
| essays/zebra.md | 1 |
|
92
|
+
| essays/apple.md | 3 |
|
93
|
+
And the file "_root/index.md" with body:
|
94
|
+
"""
|
95
|
+
<essays>
|
96
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
97
|
+
</essays>
|
98
|
+
"""
|
99
|
+
When I compile my site
|
100
|
+
Then my compiled site should have the file "index.html"
|
101
|
+
And this file should contain the content node "essays|Zebra-Hello-Apple-"
|
102
|
+
|
103
|
+
Scenario: Sort order alpha coerced custom-attribute
|
104
|
+
Given a config file with value:
|
105
|
+
"""
|
106
|
+
{ "essays" : { "sort" : ["position", "asc"] } }
|
107
|
+
"""
|
108
|
+
And some files with values:
|
109
|
+
| file | position |
|
110
|
+
| essays/hello.md | c |
|
111
|
+
| essays/zebra.md | b |
|
112
|
+
| essays/apple.md | a |
|
113
|
+
And the file "_root/index.md" with body:
|
114
|
+
"""
|
115
|
+
<essays>
|
116
|
+
{{# essays.all }}{{ title }}-{{/ essays.all }}
|
117
|
+
</essays>
|
118
|
+
"""
|
119
|
+
When I compile my site
|
120
|
+
Then my compiled site should have the file "index.html"
|
121
|
+
And this file should contain the content node "essays|Apple-Zebra-Hello-"
|
data/features/step_defs.rb
CHANGED
@@ -52,7 +52,7 @@ end
|
|
52
52
|
|
53
53
|
Then(/^my compiled site (should|should NOT) have the file "(.*?)"$/) do |matcher, path|
|
54
54
|
@filepath = path
|
55
|
-
FileUtils.cd(@ruhoh.
|
55
|
+
FileUtils.cd(@ruhoh.config['compiled_path']) {
|
56
56
|
# Done this way so the error output is more informative.
|
57
57
|
files = Dir.glob("**/*").delete_if{ |a| File.directory?(a) }
|
58
58
|
files.__send__(matcher, include(path))
|
@@ -61,7 +61,7 @@ end
|
|
61
61
|
|
62
62
|
Then(/^my compiled site (should|should NOT) have the (?:directory|folder) "(.*?)"$/) do |matcher, path|
|
63
63
|
@filepath = path
|
64
|
-
FileUtils.cd(@ruhoh.
|
64
|
+
FileUtils.cd(@ruhoh.config['compiled_path']) {
|
65
65
|
# Done this way so the error output is more informative.
|
66
66
|
files = Dir.glob("**/*").delete_if{ |a| File.file?(a) }
|
67
67
|
files.__send__(matcher, include(path))
|
@@ -90,7 +90,7 @@ end
|
|
90
90
|
Then(/^this file (should|should NOT) have the fingerprinted (stylesheets|javascripts) "(.*)"$/) do |matcher, filetype, names|
|
91
91
|
names = names.split(/[\s,]+/).map(&:strip)
|
92
92
|
files = nil
|
93
|
-
FileUtils.cd(File.join(@ruhoh.
|
93
|
+
FileUtils.cd(File.join(@ruhoh.config['compiled_path'], 'assets', filetype)){
|
94
94
|
files = Dir['*']
|
95
95
|
}
|
96
96
|
|