awestruct 0.5.3 → 0.5.4.beta1
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/lib/awestruct/cli/init.rb +35 -34
- data/lib/awestruct/cli/invoker.rb +4 -4
- data/lib/awestruct/cli/manifest.rb +57 -55
- data/lib/awestruct/cli/options.rb +11 -0
- data/lib/awestruct/config.rb +17 -14
- data/lib/awestruct/deploy/base_deploy.rb +13 -7
- data/lib/awestruct/deploy/github_pages_deploy.rb +14 -9
- data/lib/awestruct/engine.rb +17 -12
- data/lib/awestruct/extensions/intense_debate.rb +1 -1
- data/lib/awestruct/extensions/minify.rb +1 -1
- data/lib/awestruct/extensions/pipeline.rb +2 -2
- data/lib/awestruct/extensions/relative.rb +7 -1
- data/lib/awestruct/frameworks/base_Gemfile +5 -1
- data/lib/awestruct/frameworks/bootstrap/base_layout.html.haml +2 -2
- data/lib/awestruct/handler_chains.rb +2 -2
- data/lib/awestruct/handlers/asciidoctor_handler.rb +22 -4
- data/lib/awestruct/handlers/base_tilt_handler.rb +34 -10
- data/lib/awestruct/handlers/file_handler.rb +8 -12
- data/lib/awestruct/handlers/front_matter_handler.rb +1 -1
- data/lib/awestruct/handlers/interpolation_handler.rb +1 -6
- data/lib/awestruct/handlers/tilt_handler.rb +1 -7
- data/lib/awestruct/handlers/verbatim_file_handler.rb +12 -0
- data/lib/awestruct/scm/git.rb +14 -0
- data/lib/awestruct/version.rb +1 -1
- data/man/awestruct.1 +14 -3
- data/spec/asciidoc_handler_spec.rb +43 -40
- data/spec/awestruct/scm/git_spec.rb +29 -0
- data/spec/config_spec.rb +8 -2
- data/spec/engine_spec.rb +31 -9
- data/spec/erb_handler_spec.rb +33 -31
- data/spec/front_matter_handler_spec.rb +17 -6
- data/spec/github_pages_deploy_spec.rb +13 -7
- data/spec/haml_handler_spec.rb +62 -59
- data/spec/interpolation_handler_spec.rb +4 -8
- data/spec/javascript_handler_spec.rb +16 -13
- data/spec/minify_spec.rb +3 -1
- data/spec/mustache_handler_spec.rb +11 -7
- data/spec/options_spec.rb +20 -11
- data/spec/page_loader_spec.rb +3 -1
- data/spec/page_loader_spec_for_layouts.rb +3 -1
- data/spec/redirect_handler_spec.rb +21 -17
- data/spec/slim_handler_spec.rb +51 -49
- data/spec/support/shared_handler_example.rb +12 -8
- data/spec/test-data/front-matter-file-utf8.txt +5 -0
- data/spec/test-data/handlers/haml-error.html.haml +4 -0
- data/spec/test-data/handlers/hello.bogus +1 -0
- data/spec/tilt_handler_spec.rb +70 -3
- metadata +16 -25
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
module Awestruct
|
4
|
+
module Scm
|
5
|
+
class Git
|
6
|
+
def uncommitted_changes?(source_dir)
|
7
|
+
result = Open3.popen3('git status --porcelain', :chdir => source_dir) do |stdin, stdout, stderr, wait_thr|
|
8
|
+
stdout.read.chomp =~ /^\s*([AM?]+)/
|
9
|
+
end
|
10
|
+
!result.nil?
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/awestruct/version.rb
CHANGED
data/man/awestruct.1
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: awestruct
|
3
3
|
.\" Author: [see the "AUTHORS" section]
|
4
|
-
.\" Generator: DocBook XSL Stylesheets v1.
|
5
|
-
.\" Date:
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
5
|
+
.\" Date: 07/30/2013
|
6
6
|
.\" Manual: \ \&
|
7
7
|
.\" Source: \ \&
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "AWESTRUCT" "1" "
|
10
|
+
.TH "AWESTRUCT" "1" "07/30/2013" "\ \&" "\ \&"
|
11
11
|
.\" -----------------------------------------------------------------
|
12
12
|
.\" * Define some portability stuff
|
13
13
|
.\" -----------------------------------------------------------------
|
@@ -110,6 +110,17 @@ Serve the generated site from an embedded server\&.
|
|
110
110
|
.RS 4
|
111
111
|
Set the site\&.base_url property\&.
|
112
112
|
.RE
|
113
|
+
.PP
|
114
|
+
\fB\-\-output\-dir\fR=\fIDIR\fR
|
115
|
+
.RS 4
|
116
|
+
The location of the output directory\&. Defaults to
|
117
|
+
\fI\&./_site\fR\&. Must either be absolute or relative to the current directory\&.
|
118
|
+
.RE
|
119
|
+
.PP
|
120
|
+
\fB\-\-source\-dir\fR=\fIDIR\fR
|
121
|
+
.RS 4
|
122
|
+
The location of the director containing (or will contain) site sources\&. Defaults to the current directory\&. Must either be absolute or relative to the current directory\&.
|
123
|
+
.RE
|
113
124
|
.SS "Site Deployment"
|
114
125
|
.PP
|
115
126
|
\fB\-\-deploy\fR
|
@@ -4,7 +4,7 @@ require 'rspec/matchers.rb'
|
|
4
4
|
verify = lambda { |output|
|
5
5
|
include EmmetMatchers
|
6
6
|
# clean whitespace to make comparison easier
|
7
|
-
output.should have_structure(
|
7
|
+
output.should have_structure('div#preamble>div.sectionbody>div.paragraph>p>strong')
|
8
8
|
}
|
9
9
|
|
10
10
|
verify_front_matter = lambda { |output, page|
|
@@ -27,46 +27,49 @@ verify_headers = lambda { |output, page|
|
|
27
27
|
}
|
28
28
|
|
29
29
|
theories =
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
30
|
+
[
|
31
|
+
{
|
32
|
+
:page => 'asciidoc-page.ad',
|
33
|
+
:simple_name => 'asciidoc-page',
|
34
|
+
:syntax => :asciidoc,
|
35
|
+
:extension => '.html',
|
36
|
+
:matcher => verify
|
37
|
+
},
|
38
|
+
{
|
39
|
+
:page => 'asciidoc-page.adoc',
|
40
|
+
:simple_name => 'asciidoc-page',
|
41
|
+
:syntax => :asciidoc,
|
42
|
+
:extension => '.html',
|
43
|
+
:matcher => verify
|
44
|
+
},
|
45
|
+
{
|
46
|
+
:page => 'asciidoc-page.asciidoc',
|
47
|
+
:simple_name => 'asciidoc-page',
|
48
|
+
:syntax => :asciidoc,
|
49
|
+
:extension => '.html',
|
50
|
+
:matcher => verify
|
51
|
+
},
|
52
|
+
{
|
53
|
+
:page => 'asciidoctor_with_front_matter.ad',
|
54
|
+
:simple_name => 'asciidoctor_with_front_matter',
|
55
|
+
:syntax => :asciidoc,
|
56
|
+
:extension => '.html',
|
57
|
+
:matcher => verify_front_matter
|
58
|
+
},
|
59
|
+
{
|
60
|
+
:page => 'asciidoctor_with_headers.ad',
|
61
|
+
:simple_name => 'asciidoctor_with_headers',
|
62
|
+
:syntax => :asciidoc,
|
63
|
+
:extension => '.html',
|
64
|
+
:matcher => verify_headers
|
65
|
+
}
|
66
|
+
]
|
67
|
+
|
67
68
|
|
68
69
|
describe Awestruct::Handlers::AsciidoctorHandler do
|
69
|
-
|
70
|
-
|
70
|
+
def additional_config_page
|
71
|
+
{ :name => 'Awestruct', :test => 10, :layout => 'empty-layout' }
|
72
|
+
end
|
71
73
|
|
74
|
+
it_should_behave_like 'a handler', theories
|
72
75
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'awestruct/scm/git'
|
3
|
+
|
4
|
+
describe Awestruct::Scm::Git do
|
5
|
+
specify 'should respond_to :uncommitted_changes?' do
|
6
|
+
expect(subject).to respond_to :uncommitted_changes?
|
7
|
+
end
|
8
|
+
context "#uncommitted_changes?('.')" do
|
9
|
+
specify 'when there are no changes, returns false' do
|
10
|
+
Open3.should_receive(:popen3).with('git status --porcelain', :chdir => '.').and_yield(nil, StringIO.new(''), StringIO.new(''), nil)
|
11
|
+
expect(subject.uncommitted_changes? '.').to be_false
|
12
|
+
end
|
13
|
+
|
14
|
+
specify 'when there are changes to untracked files, returns true' do
|
15
|
+
Open3.should_receive(:popen3).with('git status --porcelain', :chdir => '.').and_yield(nil, StringIO.new('?? test.rb'), StringIO.new(''), nil)
|
16
|
+
expect(subject.uncommitted_changes? '.').to be_true
|
17
|
+
end
|
18
|
+
|
19
|
+
specify 'when there are modifications, returns true' do
|
20
|
+
Open3.should_receive(:popen3).with('git status --porcelain', :chdir => '.').and_yield(nil, StringIO.new(' M test.rb'), StringIO.new(''), nil)
|
21
|
+
expect(subject.uncommitted_changes? '.').to be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
specify 'when there are additions and modifications, returns true' do
|
25
|
+
Open3.should_receive(:popen3).with('git status --porcelain', :chdir => '.').and_yield(nil, StringIO.new('AM test.rb'), StringIO.new(''), nil)
|
26
|
+
expect(subject.uncommitted_changes? '.').to be_true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/spec/config_spec.rb
CHANGED
@@ -1,20 +1,26 @@
|
|
1
1
|
require 'awestruct/config'
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'awestruct/config'
|
4
|
+
require 'awestruct/cli/options'
|
4
5
|
|
5
6
|
describe Awestruct::Config do
|
6
7
|
|
7
8
|
it "should accept a list of files in .awestruct_ignore to ignore on site generation" do
|
8
9
|
site_dir = File.join(File.dirname(__FILE__), 'test-data')
|
9
|
-
|
10
|
+
opts = Awestruct::CLI::Options.new
|
11
|
+
opts.source_dir = site_dir
|
12
|
+
|
13
|
+
config = Awestruct::Config.new(opts)
|
10
14
|
config.ignore.should == ["Rakefile", "Gemfile"]
|
11
15
|
end
|
12
16
|
|
13
17
|
it "should handle an empty .awestruct_ignore file without barfing" do
|
14
18
|
site_dir = File.join(File.dirname(__FILE__), 'test-data')
|
15
19
|
config_file = File.join(site_dir, ".awestruct_ignore")
|
20
|
+
opts = Awestruct::CLI::Options.new
|
21
|
+
opts.source_dir = site_dir
|
16
22
|
File.open(config_file, "w")
|
17
|
-
config = Awestruct::Config.new(
|
23
|
+
config = Awestruct::Config.new(opts)
|
18
24
|
config.ignore.should == []
|
19
25
|
File.open(config_file, "w") { |f| f.write("Rakefile\nGemfile\n") }
|
20
26
|
end
|
data/spec/engine_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require 'awestruct/cli/options'
|
2
2
|
require 'awestruct/engine'
|
3
3
|
|
4
4
|
require 'hashery/open_cascade'
|
@@ -6,7 +6,9 @@ require 'hashery/open_cascade'
|
|
6
6
|
describe Awestruct::Engine do
|
7
7
|
|
8
8
|
it "should be able to load default-site.yml" do
|
9
|
-
|
9
|
+
opts = Awestruct::CLI::Options.new
|
10
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
11
|
+
config = Awestruct::Config.new( opts )
|
10
12
|
|
11
13
|
engine = Awestruct::Engine.new(config)
|
12
14
|
engine.load_default_site_yaml
|
@@ -17,7 +19,9 @@ describe Awestruct::Engine do
|
|
17
19
|
end
|
18
20
|
|
19
21
|
it "should be able to override default with site" do
|
20
|
-
|
22
|
+
opts = Awestruct::CLI::Options.new
|
23
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
24
|
+
config = Awestruct::Config.new( opts )
|
21
25
|
|
22
26
|
engine = Awestruct::Engine.new(config)
|
23
27
|
engine.load_default_site_yaml
|
@@ -30,7 +34,9 @@ describe Awestruct::Engine do
|
|
30
34
|
end
|
31
35
|
|
32
36
|
it "should be able to load site.yml with the correct profile" do
|
33
|
-
|
37
|
+
opts = Awestruct::CLI::Options.new
|
38
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
39
|
+
config = Awestruct::Config.new( opts )
|
34
40
|
|
35
41
|
engine = Awestruct::Engine.new(config)
|
36
42
|
engine.load_default_site_yaml
|
@@ -48,7 +54,9 @@ describe Awestruct::Engine do
|
|
48
54
|
end
|
49
55
|
|
50
56
|
it "should be able to load arbitrary _config/*.yml files" do
|
51
|
-
|
57
|
+
opts = Awestruct::CLI::Options.new
|
58
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
59
|
+
config = Awestruct::Config.new( opts )
|
52
60
|
|
53
61
|
engine = Awestruct::Engine.new(config)
|
54
62
|
engine.load_yaml( File.join( config.dir, '_config/arbitrary.yml' ) )
|
@@ -56,7 +64,9 @@ describe Awestruct::Engine do
|
|
56
64
|
end
|
57
65
|
|
58
66
|
it "should be able to load all arbitary yamls" do
|
59
|
-
|
67
|
+
opts = Awestruct::CLI::Options.new
|
68
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
69
|
+
config = Awestruct::Config.new( opts )
|
60
70
|
|
61
71
|
engine = Awestruct::Engine.new(config)
|
62
72
|
engine.load_yamls
|
@@ -67,7 +77,9 @@ describe Awestruct::Engine do
|
|
67
77
|
|
68
78
|
it "should exclude line comments and minify in compass by default in production mode" do
|
69
79
|
compass = compass_config
|
70
|
-
|
80
|
+
opts = Awestruct::CLI::Options.new
|
81
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
82
|
+
config = Awestruct::Config.new( opts )
|
71
83
|
engine = Awestruct::Engine.new(config)
|
72
84
|
engine.load_site_yaml( 'production' )
|
73
85
|
Compass.stub(:configuration).and_return(compass)
|
@@ -75,6 +87,8 @@ describe Awestruct::Engine do
|
|
75
87
|
compass.stub(:line_comments).and_return(false)
|
76
88
|
compass.should_receive(:output_style=).with(:compressed)
|
77
89
|
compass.stub(:output_style).and_return(:compressed)
|
90
|
+
compass.stub(:http_path=).with(nil)
|
91
|
+
compass.stub(:relative_assets=).with(false)
|
78
92
|
engine.configure_compass
|
79
93
|
engine.site.sass.line_numbers.should == false
|
80
94
|
engine.site.sass.style.should == :compressed
|
@@ -84,7 +98,9 @@ describe Awestruct::Engine do
|
|
84
98
|
|
85
99
|
it "should include line comments in compass by default in development mode" do
|
86
100
|
compass = compass_config
|
87
|
-
|
101
|
+
opts = Awestruct::CLI::Options.new
|
102
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
103
|
+
config = Awestruct::Config.new( opts )
|
88
104
|
engine = Awestruct::Engine.new(config)
|
89
105
|
engine.load_site_yaml( 'development' )
|
90
106
|
Compass.stub(:configuration).and_return(compass)
|
@@ -92,6 +108,8 @@ describe Awestruct::Engine do
|
|
92
108
|
compass.stub(:line_comments).and_return(true)
|
93
109
|
compass.should_receive(:output_style=).with(:expanded)
|
94
110
|
compass.stub(:output_style).and_return(:expanded)
|
111
|
+
compass.stub(:http_path=).with(nil)
|
112
|
+
compass.stub(:relative_assets=).with(false)
|
95
113
|
engine.configure_compass
|
96
114
|
engine.site.sass.line_numbers.should == true
|
97
115
|
engine.site.sass.style.should == :expanded
|
@@ -101,7 +119,9 @@ describe Awestruct::Engine do
|
|
101
119
|
|
102
120
|
it "wip should accept site.compass_line_comments and site.compass_output_style to configure behavior" do
|
103
121
|
compass = compass_config
|
104
|
-
|
122
|
+
opts = Awestruct::CLI::Options.new
|
123
|
+
opts.source_dir = File.dirname(__FILE__) + '/test-data/engine'
|
124
|
+
config = Awestruct::Config.new( opts )
|
105
125
|
engine = Awestruct::Engine.new(config)
|
106
126
|
engine.load_site_yaml( 'staging' )
|
107
127
|
Compass.stub(:configuration).and_return(compass)
|
@@ -109,6 +129,8 @@ describe Awestruct::Engine do
|
|
109
129
|
compass.stub(:line_comments).and_return(false)
|
110
130
|
compass.should_receive(:output_style=).with(:compact)
|
111
131
|
compass.stub(:output_style).and_return(:compact)
|
132
|
+
compass.stub(:http_path=).with(nil)
|
133
|
+
compass.stub(:relative_assets=).with(false)
|
112
134
|
engine.configure_compass
|
113
135
|
engine.site.sass.line_numbers.should == false
|
114
136
|
engine.site.sass.style.should == :compact
|
data/spec/erb_handler_spec.rb
CHANGED
@@ -3,17 +3,17 @@ require 'spec_helper'
|
|
3
3
|
require 'rbconfig'
|
4
4
|
|
5
5
|
verify = lambda { |output|
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
output.should =~ %r(<h1>This is an ERB page</h1>)
|
7
|
+
output.should =~ %r(<h2>The fruit of the day is: apples</h2>)
|
8
|
+
output.should =~ %r(<h3>bacon</h3>) ## interpolated
|
9
9
|
}
|
10
10
|
|
11
11
|
verify_with_xml = lambda { |output|
|
12
|
-
|
12
|
+
output.should =~ %r(<h>bacon</h>) ## interpolated
|
13
13
|
}
|
14
14
|
|
15
15
|
verify_with_utf8 = lambda { |output|
|
16
|
-
if
|
16
|
+
if RbConfig::CONFIG['target_os'] !~ /mswin|mingw/
|
17
17
|
output.should == "Besøg fra Danmark\n"
|
18
18
|
else
|
19
19
|
output.should == "\r\nBesøg fra Danmark\r\n"
|
@@ -21,32 +21,34 @@ verify_with_utf8 = lambda { |output|
|
|
21
21
|
}
|
22
22
|
|
23
23
|
theories =
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
24
|
+
[
|
25
|
+
{
|
26
|
+
:page => 'erb-page.html.erb',
|
27
|
+
:simple_name => 'erb-page',
|
28
|
+
:syntax => :erb,
|
29
|
+
:extension => '.html',
|
30
|
+
:matcher => verify
|
31
|
+
},
|
32
|
+
{
|
33
|
+
:page => 'erb-page.xml.erb',
|
34
|
+
:simple_name => 'erb-page',
|
35
|
+
:syntax => :erb,
|
36
|
+
:extension => '.xml',
|
37
|
+
:matcher => verify_with_xml
|
38
|
+
},
|
39
|
+
{
|
40
|
+
:page => 'erb-utf-page.html.erb',
|
41
|
+
:simple_name => 'erb-utf-page',
|
42
|
+
:syntax => :erb,
|
43
|
+
:extension => '.html',
|
44
|
+
:matcher => verify_with_utf8
|
45
|
+
}
|
46
|
+
]
|
47
47
|
|
48
|
-
describe Awestruct::Handlers::TiltHandler.to_s +
|
49
|
-
|
50
|
-
|
48
|
+
describe Awestruct::Handlers::TiltHandler.to_s + '-Erb' do
|
49
|
+
def additional_config
|
50
|
+
{ :crunchy => 'bacon' }
|
51
|
+
end
|
52
|
+
it_should_behave_like 'a handler', theories
|
51
53
|
|
52
54
|
end
|
@@ -1,4 +1,7 @@
|
|
1
|
+
# -*- coding: UTF-8 -*-
|
2
|
+
|
1
3
|
require 'fileutils'
|
4
|
+
require 'spec_helper'
|
2
5
|
|
3
6
|
require 'awestruct/handlers/file_handler'
|
4
7
|
require 'awestruct/handlers/front_matter_handler'
|
@@ -18,26 +21,34 @@ describe Awestruct::Handlers::FrontMatterHandler do
|
|
18
21
|
Awestruct::Handlers::FileHandler.new( @site, filename )
|
19
22
|
end
|
20
23
|
|
21
|
-
it
|
22
|
-
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input(
|
24
|
+
it 'should be able to split front-matter from content' do
|
25
|
+
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input('front-matter-file.txt') )
|
23
26
|
handler.front_matter.should_not be_nil
|
24
27
|
handler.front_matter['foo'].should == 'bar'
|
25
28
|
handler.raw_content.strip.should == 'This is some content'
|
26
29
|
end
|
27
30
|
|
28
|
-
it
|
29
|
-
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input(
|
31
|
+
it 'should be able to split front-matter from content for files without actual front-matter' do
|
32
|
+
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input('front-matter-file-no-front.txt') )
|
30
33
|
handler.front_matter.should_not be_nil
|
31
34
|
handler.front_matter.should be_empty
|
32
35
|
handler.raw_content.strip.should == 'This is some content'
|
33
36
|
end
|
34
37
|
|
35
|
-
it
|
36
|
-
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input(
|
38
|
+
it 'should be able to split front-matter from content for files without actual content' do
|
39
|
+
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input('front-matter-file-no-content.txt') )
|
37
40
|
handler.front_matter.should_not be_nil
|
38
41
|
handler.front_matter['foo'].should == 'bar'
|
39
42
|
handler.raw_content.should be_nil
|
40
43
|
end
|
41
44
|
|
45
|
+
it 'should be able to handle UTF-8 characters' do
|
46
|
+
handler = Awestruct::Handlers::FrontMatterHandler.new( @site, file_input('front-matter-file-utf8.txt') )
|
47
|
+
handler.front_matter.should_not be_nil
|
48
|
+
handler.front_matter['foo'].should == 'bar'
|
49
|
+
handler.front_matter['utf8-content'].should == 'Μεα ιυδισο μενθιτυμ ετ. Ιυς ευ ποπυλω'
|
50
|
+
handler.raw_content.should_not be_nil
|
51
|
+
end
|
52
|
+
|
42
53
|
end
|
43
54
|
|