mint 0.2.2 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +37 -32
- data/bin/mint +15 -52
- data/config/{options.yaml → syntax.yaml} +10 -11
- data/lib/mint/commandline.rb +63 -15
- data/lib/mint/document.rb +48 -28
- data/lib/mint/exceptions.rb +3 -0
- data/lib/mint/helpers.rb +21 -10
- data/lib/mint/layout.rb +2 -1
- data/lib/mint/mint.rb +47 -15
- data/lib/mint/resource.rb +58 -20
- data/lib/mint/style.rb +23 -4
- data/lib/mint/version.rb +1 -1
- data/spec/document_spec.rb +124 -162
- data/spec/spec_helper.rb +90 -2
- data/templates/default/style.sass +18 -96
- metadata +131 -162
data/lib/mint/mint.rb
CHANGED
@@ -8,22 +8,23 @@ require 'mint/exceptions'
|
|
8
8
|
module Mint
|
9
9
|
# Assume that someone using an Html template has formatted it
|
10
10
|
# in Erb and that a Css stylesheet will pass untouched through
|
11
|
-
# a
|
12
|
-
Tilt.register
|
13
|
-
Tilt.register
|
11
|
+
# a Scss parser.
|
12
|
+
Tilt.register Tilt::ERBTemplate, :html
|
13
|
+
Tilt.register Tilt::ScssTemplate, :css
|
14
14
|
|
15
15
|
def self.root
|
16
|
-
Pathname.new(__FILE__).realpath.dirname + '../..'
|
16
|
+
(Pathname.new(__FILE__).realpath.dirname + '../..').to_s
|
17
17
|
end
|
18
18
|
|
19
19
|
# Return the an array with the Mint template path. Will first look
|
20
20
|
# for MINT_PATH environment variable. Otherwise will use smart defaults.
|
21
21
|
# Either way, earlier/higher paths take precedence. And is considered to
|
22
22
|
# be the directory for "local" config options, templates, etc.
|
23
|
-
def self.path
|
23
|
+
def self.path(as_path=false)
|
24
24
|
mint_path = ENV['MINT_PATH'] ||
|
25
25
|
"#{Dir.getwd}/.mint:~/.mint:#{Mint.root}"
|
26
|
-
mint_path.split(':')
|
26
|
+
paths = mint_path.split(':')
|
27
|
+
as_path ? paths.map {|p| Pathname.new(p).expand_path } : paths
|
27
28
|
end
|
28
29
|
|
29
30
|
# I want to refactor this so that Mint.path is always a Hash...
|
@@ -31,13 +32,13 @@ module Mint
|
|
31
32
|
# Right now, this is a hack. It assumes a sane MINT_PATH, where the
|
32
33
|
# first entry is most local, the second is user-level,
|
33
34
|
# and the last entry is most global.
|
34
|
-
def self.path_for_scope(scope=:local)
|
35
|
+
def self.path_for_scope(scope=:local, as_path=false)
|
35
36
|
case Mint.path
|
36
37
|
when Array
|
37
38
|
index = { local: 0, user: 1, global: 2 }[scope]
|
38
|
-
Mint.path[index]
|
39
|
+
Mint.path(as_path)[index]
|
39
40
|
when Hash
|
40
|
-
Mint.path[scope]
|
41
|
+
Mint.path(as_path)[scope]
|
41
42
|
else
|
42
43
|
nil
|
43
44
|
end
|
@@ -45,12 +46,18 @@ module Mint
|
|
45
46
|
|
46
47
|
# Returns a hash with key Mint directories
|
47
48
|
def self.directories
|
48
|
-
{
|
49
|
+
{
|
50
|
+
templates: 'templates',
|
51
|
+
config: 'config'
|
52
|
+
}
|
49
53
|
end
|
50
54
|
|
51
55
|
# Returns a hash with key Mint files
|
52
56
|
def self.files
|
53
|
-
{
|
57
|
+
{
|
58
|
+
syntax: directories[:config] + '/syntax.yaml',
|
59
|
+
config: directories[:config] + '/config.yaml'
|
60
|
+
}
|
54
61
|
end
|
55
62
|
|
56
63
|
def self.default_options
|
@@ -75,6 +82,18 @@ module Mint
|
|
75
82
|
css_formats = ['css', 'sass', 'scss', 'less']
|
76
83
|
end
|
77
84
|
|
85
|
+
# Lists the full path for each known template in the
|
86
|
+
# Mint path
|
87
|
+
def self.templates
|
88
|
+
templates_dir = Mint.directories[:templates]
|
89
|
+
|
90
|
+
Mint.path(true).
|
91
|
+
map {|p| p + directories[:templates] }.
|
92
|
+
select(&:exist?).
|
93
|
+
map {|p| p.children.select(&:directory?).map(&:to_s) }.
|
94
|
+
flatten
|
95
|
+
end
|
96
|
+
|
78
97
|
# Decides whether the template specified by `name_or_file` is a real
|
79
98
|
# file or the name of a template. If it is a real file, Mint will
|
80
99
|
# return a that file. Otherwise, Mint will look for a file with that
|
@@ -87,7 +106,7 @@ module Mint
|
|
87
106
|
# ~/.mint/templates/normal/style.css.
|
88
107
|
def self.lookup_template(name_or_file, type=:layout)
|
89
108
|
name = name_or_file.to_s
|
90
|
-
File.exist?(name) ?
|
109
|
+
File.exist?(name) ? name : find_template(name, type)
|
91
110
|
end
|
92
111
|
|
93
112
|
# Finds a template named `name` in the Mint path. If `type` is :layout,
|
@@ -105,17 +124,26 @@ module Mint
|
|
105
124
|
find_files = lambda {|x| Pathname.glob "#{x.to_s}.*" }
|
106
125
|
acceptable = lambda {|x| x.to_s =~ /#{Mint.formats.join '|'}/ }
|
107
126
|
|
108
|
-
template = Mint.path.map(&file_name).map(&find_files).flatten.
|
109
|
-
select(&acceptable).select(&:exist?).first
|
127
|
+
template = Mint.path(true).map(&file_name).map(&find_files).flatten.
|
128
|
+
select(&acceptable).select(&:exist?).first.to_s
|
110
129
|
raise TemplateNotFoundException unless template
|
111
130
|
|
112
131
|
template
|
113
132
|
end
|
114
133
|
|
134
|
+
# A non-rigourous check to see if the file is somewhere on the
|
135
|
+
# MINT_PATH
|
136
|
+
def self.template?(file)
|
137
|
+
paths = Mint.path.map {|f| File.expand_path f }
|
138
|
+
file_path = Pathname.new(file)
|
139
|
+
file_path.exist? and
|
140
|
+
file_path.dirname.expand_path.to_s =~ /#{paths.join('|')}/
|
141
|
+
end
|
142
|
+
|
115
143
|
# Guesses an appropriate name for the resource output file based on
|
116
144
|
# its source file's base name
|
117
145
|
def self.guess_name_from(name)
|
118
|
-
name = name.basename if name
|
146
|
+
name = Pathname(name).basename if name
|
119
147
|
css = Mint.css_formats.join '|'
|
120
148
|
name.to_s.
|
121
149
|
gsub(/\.(#{css})$/, '.css').
|
@@ -127,4 +155,8 @@ module Mint
|
|
127
155
|
def self.renderer(path)
|
128
156
|
Tilt.new path.to_s, :smart => true, :ugly => true
|
129
157
|
end
|
158
|
+
|
159
|
+
def self.publish!(document)
|
160
|
+
document.publish!
|
161
|
+
end
|
130
162
|
end
|
data/lib/mint/resource.rb
CHANGED
@@ -4,44 +4,82 @@ module Mint
|
|
4
4
|
class Resource
|
5
5
|
attr_accessor :type
|
6
6
|
|
7
|
-
attr_reader :source
|
8
|
-
def source=(source)
|
9
|
-
@source = Pathname.new(source) if source
|
10
|
-
end
|
11
|
-
|
12
|
-
# I haven't tested this - moved empty string from
|
13
|
-
# default options into this method, so that default options
|
14
|
-
# can be uniform - i.e., style_destination and destination
|
15
|
-
# can each be nil to indicate that any rendering will be
|
16
|
-
# done in the same folder the file is already in. I need
|
17
|
-
# to make sure that adding the empty string here actually
|
18
|
-
# keeps us in the current working directory
|
19
|
-
attr_reader :destination
|
20
|
-
def destination=(destination)
|
21
|
-
@destination = Pathname.new(destination) if destination
|
22
|
-
end
|
23
|
-
|
24
7
|
attr_reader :name
|
25
8
|
def name=(name)
|
26
9
|
@name = name
|
27
10
|
end
|
28
11
|
|
12
|
+
attr_reader :root
|
13
|
+
def root=(root)
|
14
|
+
@root = root
|
15
|
+
end
|
16
|
+
|
17
|
+
def root_directory_path
|
18
|
+
Pathname.new(root || Dir.getwd).expand_path
|
19
|
+
end
|
20
|
+
|
21
|
+
def root_directory
|
22
|
+
root_directory_path.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
attr_accessor :source
|
26
|
+
|
27
|
+
def source_file_path
|
28
|
+
path = Pathname.new(source)
|
29
|
+
path.absolute? ?
|
30
|
+
path.expand_path : root_directory_path + path
|
31
|
+
end
|
32
|
+
|
33
|
+
def source_file
|
34
|
+
source_file_path.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def source_directory_path
|
38
|
+
source_file_path.dirname
|
39
|
+
end
|
40
|
+
|
41
|
+
def source_directory
|
42
|
+
source_directory_path.to_s
|
43
|
+
end
|
44
|
+
|
45
|
+
attr_accessor :destination
|
46
|
+
|
47
|
+
def destination_file_path
|
48
|
+
root_directory_path + (destination || '') + name
|
49
|
+
end
|
50
|
+
|
51
|
+
def destination_file
|
52
|
+
destination_file_path.to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
def destination_directory_path
|
56
|
+
destination_file_path.dirname
|
57
|
+
end
|
58
|
+
|
59
|
+
def destination_directory
|
60
|
+
destination_directory_path.to_s
|
61
|
+
end
|
62
|
+
|
29
63
|
def renderer=(renderer)
|
30
64
|
@renderer = renderer
|
31
65
|
end
|
32
66
|
|
33
|
-
def initialize(source,
|
67
|
+
def initialize(source, options={})
|
34
68
|
return nil unless source
|
35
69
|
|
70
|
+
self.type = :resource
|
36
71
|
self.source = source
|
37
|
-
self.
|
72
|
+
self.root = options[:root] || source_directory
|
38
73
|
self.destination = options[:destination]
|
74
|
+
|
75
|
+
yield self if block_given?
|
76
|
+
|
39
77
|
self.name = Mint.guess_name_from source
|
40
78
|
self.renderer = Mint.renderer source
|
41
79
|
end
|
42
80
|
|
43
81
|
def equal?(other)
|
44
|
-
self.
|
82
|
+
self.destination_file_path == other.destination_file_path
|
45
83
|
end
|
46
84
|
alias_method :==, :equal?
|
47
85
|
|
data/lib/mint/style.rb
CHANGED
@@ -6,12 +6,31 @@ module Mint
|
|
6
6
|
# file to use when a template name is specified.
|
7
7
|
class Style < Resource
|
8
8
|
def initialize(source, opts=Mint.default_options)
|
9
|
-
super(source,
|
10
|
-
self.
|
9
|
+
super(source, opts)
|
10
|
+
self.type = :style
|
11
|
+
|
12
|
+
# We want to render final stylesheet to the /css subdirectory if
|
13
|
+
# an output directory is not specified and we are dealing with
|
14
|
+
# a named template (not a local file). If we don't do this, the rendered
|
15
|
+
# Css file might be picked up next time we look for a named template
|
16
|
+
# in this directory, and the (correct) Sass file won't be picked up.
|
17
|
+
# However, if a destination directory is already specified, we
|
18
|
+
# leave it alone.
|
19
|
+
if Mint.template?(self.source_directory) and rendered?
|
20
|
+
self.destination ||= 'css'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def render
|
25
|
+
if rendered?
|
26
|
+
super
|
27
|
+
else
|
28
|
+
File.read source
|
29
|
+
end
|
11
30
|
end
|
12
31
|
|
13
|
-
def
|
14
|
-
|
32
|
+
def rendered?
|
33
|
+
source_file_path.extname !~ /\.css$/
|
15
34
|
end
|
16
35
|
end
|
17
36
|
end
|
data/lib/mint/version.rb
CHANGED
data/spec/document_spec.rb
CHANGED
@@ -2,225 +2,187 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Mint
|
4
4
|
describe Document do
|
5
|
-
before
|
6
|
-
@old_dir = Dir.getwd
|
7
|
-
Dir.chdir 'tmp'
|
8
|
-
end
|
9
|
-
|
10
|
-
before do
|
11
|
-
@content_file = 'content.md'
|
12
|
-
@layout_file = 'local.haml'
|
13
|
-
@style_file = 'local.css'
|
5
|
+
before { @tmp_dir = Dir.getwd }
|
14
6
|
|
15
|
-
|
16
|
-
|
17
|
-
|
7
|
+
# We're not going to re-test derivative methods like source_file_path
|
8
|
+
# or root_directory. resource_spec.rb tells us that if the master
|
9
|
+
# values hold true, then their derivatives will be what we expect, as well.
|
10
|
+
# We do have to test #style_destination derivatives. Those aren't
|
11
|
+
# covered by resource_spec.rb.
|
12
|
+
shared_examples_for "all documents" do
|
13
|
+
# Convenience methods
|
14
|
+
|
15
|
+
it "#stylesheet" do
|
16
|
+
relative_path = document.destination_file_path.
|
17
|
+
relative_path_from(document.style_destination_file_path)
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
document.stylesheet.should == relative_path.to_s
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
%body= content
|
27
|
-
HERE
|
22
|
+
# style_spec.rb ensures that our style generation goes as planned
|
23
|
+
# However, we need to test layout generation because it should now
|
24
|
+
# include our content
|
25
|
+
its(:content) { should =~ /<p>This is just a test.<\/p>/ }
|
28
26
|
|
29
|
-
|
27
|
+
# Render output
|
30
28
|
|
31
|
-
|
32
|
-
|
29
|
+
it "renders its layout, injecting content inside" do
|
30
|
+
document.render.should =~
|
31
|
+
/.*<html>.*#{document.content}.*<\/html>.*/m
|
33
32
|
end
|
34
33
|
|
35
|
-
|
36
|
-
|
34
|
+
it "links to its stylesheet" do
|
35
|
+
document.render.should =~ /#{document.stylesheet}/
|
37
36
|
end
|
38
37
|
|
39
|
-
|
40
|
-
|
38
|
+
# Mint output
|
39
|
+
|
40
|
+
it "writes its rendered style to #style_destination_file" do
|
41
|
+
document.publish!
|
42
|
+
document.style_destination_file_path.should exist
|
41
43
|
end
|
42
|
-
end
|
43
44
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
it "writes its rendered layout and content to #destination_file" do
|
46
|
+
document.publish!
|
47
|
+
document.destination_file_path.should exist
|
48
|
+
content = File.read document.destination_file
|
49
|
+
content.should == document.render
|
50
|
+
end
|
48
51
|
end
|
49
52
|
|
50
|
-
|
51
|
-
|
52
|
-
end
|
53
|
+
context "when it's created with default options" do
|
54
|
+
let(:document) { Document.new @content_file }
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
56
|
+
subject { document }
|
57
|
+
its(:root) { should == @tmp_dir }
|
58
|
+
its(:destination) { should be_nil }
|
59
|
+
its(:source) { should == 'content.md' }
|
60
|
+
its(:style_destination) { should be_nil }
|
58
61
|
|
59
|
-
|
60
|
-
|
62
|
+
its(:style_destination_file) do
|
63
|
+
should == Mint.root + '/templates/default/css/style.css'
|
61
64
|
end
|
62
65
|
|
63
|
-
|
64
|
-
|
66
|
+
its(:style_destination_directory) do
|
67
|
+
should == Mint.root + '/templates/default/css'
|
65
68
|
end
|
66
69
|
|
67
|
-
|
68
|
-
|
69
|
-
/.*<html>.*<p>This is just a test.<\/p>.*<\/html>.*/m
|
70
|
+
its(:style_destination_file_path) do
|
71
|
+
should == Pathname.new(document.style_destination_file)
|
70
72
|
end
|
71
73
|
|
72
|
-
|
73
|
-
|
74
|
-
it "creates a named output file in its specified destination directory" do
|
75
|
-
pending
|
76
|
-
document.mint
|
77
|
-
document.destination_file.should exist
|
78
|
-
# file = Pathname.getwd + (document.destination || '') + document.name
|
79
|
-
# file.should exist
|
74
|
+
its(:style_destination_directory_path) do
|
75
|
+
should == Pathname.new(document.style_destination_directory)
|
80
76
|
end
|
81
77
|
|
82
|
-
|
83
|
-
|
84
|
-
document.mint
|
85
|
-
content = File.read document.destination_file
|
86
|
-
content.should =~ /.*<html>.*<p>This is just a test.<\/p>.*<\/html>.*/m
|
87
|
-
end
|
88
|
-
end
|
78
|
+
its(:layout) { should be_in_directory('default') }
|
79
|
+
its(:style) { should be_in_directory('default') }
|
89
80
|
|
90
|
-
|
91
|
-
it "knows not to render its style" do
|
92
|
-
document.style.need_rendering?.should == false
|
93
|
-
end
|
94
|
-
|
95
|
-
it "does not render or write its style"
|
81
|
+
it_should_behave_like "all documents"
|
96
82
|
end
|
97
83
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
84
|
+
context "when it's created with explicit destination directories" do
|
85
|
+
let(:document) { Document.new @content_file,
|
86
|
+
:destination => 'destination',
|
87
|
+
:style_destination => 'styles' }
|
102
88
|
|
103
|
-
|
104
|
-
|
89
|
+
subject { document }
|
90
|
+
its(:root) { should == @tmp_dir }
|
91
|
+
its(:destination) { should == 'destination' }
|
92
|
+
its(:source) { should == 'content.md' }
|
93
|
+
its(:style_destination) { should == 'styles' }
|
105
94
|
|
106
|
-
|
107
|
-
|
108
|
-
document.layout.should be_in_directory('default')
|
95
|
+
its(:style_destination_file) do
|
96
|
+
should == "#{@tmp_dir}/destination/styles/style.css"
|
109
97
|
end
|
110
98
|
|
111
|
-
|
112
|
-
|
99
|
+
its(:style_destination_directory) do
|
100
|
+
should == "#{@tmp_dir}/destination/styles"
|
113
101
|
end
|
114
|
-
end
|
115
102
|
|
116
|
-
|
117
|
-
|
118
|
-
document.layout.should be_in_directory('pro')
|
103
|
+
its(:style_destination_file_path) do
|
104
|
+
should == Pathname.new(document.style_destination_file)
|
119
105
|
end
|
120
106
|
|
121
|
-
|
122
|
-
|
107
|
+
its(:style_destination_directory_path) do
|
108
|
+
should == Pathname.new(document.style_destination_directory)
|
123
109
|
end
|
124
|
-
end
|
125
110
|
|
126
|
-
|
127
|
-
|
128
|
-
document.layout.name.to_s.should =~ /local/
|
129
|
-
document.layout.source.to_s.should == 'local.haml'
|
130
|
-
end
|
111
|
+
its(:layout) { should be_in_directory('default') }
|
112
|
+
its(:style) { should be_in_directory('default') }
|
131
113
|
|
132
|
-
|
133
|
-
document.style.name.to_s.should =~ /local/
|
134
|
-
document.style.source.to_s.should == 'local.css'
|
135
|
-
end
|
114
|
+
it_should_behave_like "all documents"
|
136
115
|
end
|
137
116
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
end
|
117
|
+
context "when it's created with an explicit root" do
|
118
|
+
let(:document) { Document.new @content_file,
|
119
|
+
:root => "#{@tmp_dir}/alternative-root" }
|
142
120
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
121
|
+
subject { document }
|
122
|
+
its(:root) { should == "#{@tmp_dir}/alternative-root" }
|
123
|
+
its(:destination) { should be_nil }
|
124
|
+
its(:source) { should == 'content.md' }
|
125
|
+
its(:style_destination) { should be_nil }
|
147
126
|
|
148
|
-
|
149
|
-
|
150
|
-
document.destination.to_s.should == 'destination'
|
127
|
+
its(:style_destination_file) do
|
128
|
+
should == Mint.root + '/templates/default/css/style.css'
|
151
129
|
end
|
152
130
|
|
153
|
-
|
154
|
-
|
131
|
+
its(:style_destination_directory) do
|
132
|
+
should == Mint.root + '/templates/default/css'
|
155
133
|
end
|
156
|
-
end
|
157
134
|
|
158
|
-
|
159
|
-
|
135
|
+
its(:style_destination_file_path) do
|
136
|
+
should == Pathname.new(document.style_destination_file)
|
137
|
+
end
|
160
138
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
it_behaves_like "documents with a dynamic stylesheet"
|
165
|
-
end
|
139
|
+
its(:style_destination_directory_path) do
|
140
|
+
should == Pathname.new(document.style_destination_directory)
|
141
|
+
end
|
166
142
|
|
167
|
-
|
168
|
-
|
169
|
-
:layout => 'pro', :style => 'pro' }
|
143
|
+
its(:layout) { should be_in_directory('default') }
|
144
|
+
its(:style) { should be_in_directory('default') }
|
170
145
|
|
171
|
-
|
172
|
-
it_behaves_like "documents with the pro template"
|
173
|
-
it_behaves_like "documents without explicit directories"
|
174
|
-
it_behaves_like "documents with a dynamic stylesheet"
|
146
|
+
it_should_behave_like "all documents"
|
175
147
|
end
|
176
148
|
|
177
|
-
context "when it
|
178
|
-
let(:document)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
149
|
+
context "when it is created with a block" do
|
150
|
+
let(:document) do
|
151
|
+
Document.new @content_file do |doc|
|
152
|
+
doc.root = "#{@tmp_dir}/alternative-root"
|
153
|
+
doc.destination = 'destination'
|
154
|
+
doc.style_destination = 'styles'
|
155
|
+
doc.layout = 'pro'
|
156
|
+
doc.style = 'pro'
|
157
|
+
end
|
158
|
+
end
|
186
159
|
|
187
|
-
|
188
|
-
|
160
|
+
subject { document }
|
161
|
+
its(:root) { should == "#{@tmp_dir}/alternative-root" }
|
162
|
+
its(:destination) { should == 'destination' }
|
163
|
+
its(:source) { should == 'content.md' }
|
164
|
+
its(:style_destination) { should == 'styles' }
|
189
165
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
it_behaves_like "documents with a dynamic stylesheet"
|
194
|
-
end
|
166
|
+
its(:style_destination_file) do
|
167
|
+
should == "#{@tmp_dir}/alternative-root/destination/styles/style.css"
|
168
|
+
end
|
195
169
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
:style_destination => 'styles' }
|
170
|
+
its(:style_destination_directory) do
|
171
|
+
should == "#{@tmp_dir}/alternative-root/destination/styles"
|
172
|
+
end
|
200
173
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
it_behaves_like "documents with a dynamic stylesheet"
|
205
|
-
end
|
174
|
+
its(:style_destination_file_path) do
|
175
|
+
should == Pathname.new(document.style_destination_file)
|
176
|
+
end
|
206
177
|
|
207
|
-
|
208
|
-
|
209
|
-
Document.new @content_file do |document|
|
210
|
-
document.destination = 'destination'
|
211
|
-
document.style_destination = 'styles'
|
212
|
-
document.layout = 'pro'
|
213
|
-
document.style = 'pro'
|
214
|
-
end
|
178
|
+
its(:style_destination_directory_path) do
|
179
|
+
should == Pathname.new(document.style_destination_directory)
|
215
180
|
end
|
216
181
|
|
217
|
-
|
218
|
-
|
219
|
-
it_behaves_like "documents with explicit directories"
|
220
|
-
it_behaves_like "documents with a dynamic stylesheet"
|
221
|
-
end
|
182
|
+
its(:layout) { should be_in_directory('pro') }
|
183
|
+
its(:style) { should be_in_directory('pro') }
|
222
184
|
|
223
|
-
|
224
|
-
|
185
|
+
it_should_behave_like "all documents"
|
186
|
+
end
|
225
187
|
end
|
226
188
|
end
|