dokkit 0.2.0 → 0.3.0
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/History.txt +4 -0
- data/Manifest.txt +125 -0
- data/README.txt +53 -0
- data/Rakefile +25 -167
- data/bin/dokkit +4 -60
- data/lib/dokkit/app.rb +63 -192
- data/lib/dokkit/builtintask.rb +85 -0
- data/lib/dokkit/cachemanager.rb +61 -0
- data/lib/dokkit/cleantask.rb +51 -0
- data/lib/dokkit/consolelog.rb +42 -0
- data/lib/dokkit/defaults.rb +19 -0
- data/lib/dokkit/document.rb +221 -0
- data/lib/dokkit/dokkitlib.rb +68 -0
- data/lib/dokkit/extension/extension.rb +15 -0
- data/lib/dokkit/extension/filehelper.rb +25 -0
- data/lib/dokkit/fileselection.rb +44 -0
- data/lib/dokkit/filters/all.rb +18 -0
- data/lib/dokkit/filters/base.rb +18 -0
- data/lib/dokkit/filters/deplate.rb +21 -25
- data/lib/dokkit/filters/maruku.rb +23 -0
- data/lib/dokkit/filters/nil.rb +23 -0
- data/lib/dokkit/filters.rb +29 -21
- data/lib/dokkit/logger.rb +73 -0
- data/lib/dokkit/model.rb +34 -0
- data/lib/dokkit/models/{Rakefile.tpl → simpledocument/model/Rakefile} +15 -2
- data/lib/dokkit/models/simpledocument/model/doc/configs/simpledocument.yaml +3 -0
- data/lib/dokkit/models/simpledocument/model/doc/layouts/simpledocument.html +9 -0
- data/lib/dokkit/models/simpledocument/model/doc/layouts/simpledocument.latex +8 -0
- data/lib/dokkit/models/simpledocument/model/doc/layouts/simpledocument.text +1 -0
- data/lib/dokkit/models/simpledocument/model/doc/pages/simpledocument.deplate +102 -0
- data/lib/dokkit/models/simpledocument/model/tasks/all.rb +3 -0
- data/lib/dokkit/models/simpledocument/model/tasks/clean.rake +3 -0
- data/lib/dokkit/models/simpledocument/model/tasks/render.rake +8 -0
- data/lib/dokkit/models/simpledocument/model/tasks/setup.rb +9 -0
- data/lib/dokkit/modeltask.rb +83 -0
- data/lib/dokkit/pathhelper.rb +46 -0
- data/lib/dokkit/recursivemerge.rb +59 -0
- data/lib/dokkit/rendertask.rb +101 -0
- data/lib/dokkit/resourcemanager.rb +177 -0
- data/lib/dokkit/taskconfig.rb +39 -0
- data/lib/dokkit/templatetask.rb +37 -0
- data/lib/dokkit.rb +2 -8
- data/spec/app_spec.rb +55 -0
- data/spec/builtintask_spec.rb +114 -0
- data/spec/cachemanager_spec.rb +107 -0
- data/spec/cleantask_spec.rb +72 -0
- data/spec/consolelog_spec.rb +69 -0
- data/{tests/data/projects/simple-document → spec/data/test_build}/Rakefile +8 -8
- data/spec/data/test_build/doc/configs/document_1.yaml +3 -0
- data/spec/data/test_build/doc/configs/required.yaml +3 -0
- data/spec/data/test_build/doc/configs/subdir/document_4.yaml +3 -0
- data/spec/data/test_build/doc/layouts/document_1.html +9 -0
- data/spec/data/test_build/doc/layouts/document_1.latex +8 -0
- data/spec/data/test_build/doc/layouts/document_with_partials.html +9 -0
- data/spec/data/test_build/doc/layouts/layout +0 -0
- data/spec/data/test_build/doc/layouts/layout.html +8 -0
- data/spec/data/test_build/doc/layouts/layout.html.backup +8 -0
- data/spec/data/test_build/doc/layouts/nested.html +3 -0
- data/spec/data/test_build/doc/layouts/partials/partial.html +4 -0
- data/spec/data/test_build/doc/pages/COMMON.yaml +6 -0
- data/spec/data/test_build/doc/pages/document_1 +20 -0
- data/spec/data/test_build/doc/pages/document_1.dep +4 -0
- data/spec/data/test_build/doc/pages/document_1.yaml +11 -0
- data/spec/data/test_build/doc/pages/document_2 +9 -0
- data/spec/data/test_build/doc/pages/document_2.dep +0 -0
- data/spec/data/test_build/doc/pages/document_2.yaml +6 -0
- data/spec/data/test_build/doc/pages/document_3 +13 -0
- data/spec/data/test_build/doc/pages/document_5.exclude +0 -0
- data/spec/data/test_build/doc/pages/document_7 +4 -0
- data/spec/data/test_build/doc/pages/document_7.yaml +5 -0
- data/spec/data/test_build/doc/pages/document_extended +1 -0
- data/spec/data/test_build/doc/pages/document_nested +6 -0
- data/spec/data/test_build/doc/pages/document_nested.yaml +5 -0
- data/spec/data/test_build/doc/pages/document_nolayout.ext +3 -0
- data/spec/data/test_build/doc/pages/document_nolayout.yaml +2 -0
- data/spec/data/test_build/doc/pages/document_with_partials +3 -0
- data/spec/data/test_build/doc/pages/document_with_partials.yaml +2 -0
- data/spec/data/test_build/doc/pages/partials/COMMON.yaml +5 -0
- data/spec/data/test_build/doc/pages/partials/circular_partial +2 -0
- data/spec/data/test_build/doc/pages/partials/circular_partial.yaml +3 -0
- data/spec/data/test_build/doc/pages/partials/partial +2 -0
- data/spec/data/test_build/doc/pages/subdir/COMMON.yaml +2 -0
- data/spec/data/test_build/doc/pages/subdir/document_4 +11 -0
- data/spec/data/test_build/doc/pages/subdir/subdir/COMMON.yaml +2 -0
- data/spec/data/test_build/doc/pages/subdir/subdir/document_6 +3 -0
- data/spec/data/test_build/tasks/all.rb +3 -0
- data/spec/data/test_build/tasks/clean.rake +3 -0
- data/spec/data/test_build/tasks/render.rake +8 -0
- data/spec/data/test_build/tasks/setup.rb +9 -0
- data/spec/data/test_build/tasks/template.rake +3 -0
- data/spec/data/test_build/templates/layouts/layout +0 -0
- data/spec/data/test_build/templates/pages/template +0 -0
- data/spec/document_spec.rb +321 -0
- data/spec/dokkitlib_spec.rb +63 -0
- data/spec/filehelper_spec.rb +34 -0
- data/spec/fileselection_spec.rb +101 -0
- data/spec/filter_base_spec.rb +29 -0
- data/spec/filter_deplate_spec.rb +48 -0
- data/spec/filter_maruku_spec.rb +29 -0
- data/spec/filter_nil_spec.rb +30 -0
- data/spec/filters_spec.rb +37 -0
- data/spec/logger_spec.rb +150 -0
- data/spec/model_spec.rb +45 -0
- data/spec/pathhelper_spec.rb +62 -0
- data/spec/recursivemerge_spec.rb +91 -0
- data/spec/rendertask_spec.rb +374 -0
- data/spec/spec_helper.rb +61 -0
- data/spec/taskconfig_spec.rb +45 -0
- data/spec/templatetask_spec.rb +72 -0
- data/tasks/annotations.rake +30 -0
- data/tasks/doc.rake +49 -0
- data/tasks/gem.rake +89 -0
- data/tasks/manifest.rake +41 -0
- data/tasks/rubyforge.rake +57 -0
- data/tasks/setup.rb +151 -0
- data/tasks/spec.rake +40 -0
- data/tasks/svn.rake +44 -0
- data/tasks/test.rake +40 -0
- metadata +188 -161
- data/CHANGES +0 -26
- data/LICENSE +0 -674
- data/README +0 -32
- data/lib/dokkit/#render_task_factory.rb# +0 -94
- data/lib/dokkit/dokkittasks.rb +0 -99
- data/lib/dokkit/hash.rb +0 -41
- data/lib/dokkit/models/share/builtin.rf +0 -28
- data/lib/dokkit/page.rb +0 -195
- data/lib/dokkit/render_task_factory.rb +0 -91
- data/tests/data/output/simple_document/README +0 -57
- data/tests/data/output/simple_document/Rakefile +0 -7
- data/tests/data/output/simple_document/doc/config/simple_document.yaml +0 -5
- data/tests/data/output/simple_document/doc/pages/simple_document.dpl +0 -12
- data/tests/data/output/website_project/README +0 -49
- data/tests/data/output/website_project/Rakefile +0 -82
- data/tests/data/output/website_project/doc/layouts/normal.thtml +0 -38
- data/tests/data/output/website_project/doc/pages/COMMON.rb +0 -9
- data/tests/data/output/website_project/doc/pages/deplate.dplhtml +0 -9
- data/tests/data/output/website_project/doc/pages/index.rb +0 -10
- data/tests/data/output/website_project/doc/pages/index.thtml +0 -12
- data/tests/data/output/website_project/doc/res/images/rote-tiny.png +0 -0
- data/tests/data/projects/simple-document/README +0 -57
- data/tests/data/projects/simple-document/doc/config/author.yaml +0 -4
- data/tests/data/projects/simple-document/doc/config/model.yaml +0 -18
- data/tests/data/projects/simple-document/doc/config/simple_document.yaml +0 -6
- data/tests/data/projects/simple-document/doc/layouts/another_simple_document.html +0 -8
- data/tests/data/projects/simple-document/doc/layouts/another_simple_document.tex +0 -10
- data/tests/data/projects/simple-document/doc/layouts/layout_with_custom_name.html +0 -8
- data/tests/data/projects/simple-document/doc/layouts/semantic.cache +0 -23
- data/tests/data/projects/simple-document/doc/pages/COMMON.yaml +0 -23
- data/tests/data/projects/simple-document/doc/pages/another_simple_document.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/simple_document.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/simple_document_without_layout.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/subdir/COMMON.yaml +0 -4
- data/tests/data/projects/simple-document/doc/pages/subdir/simple_document_in_subdir.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/subdir/simple_document_in_subdir.yaml +0 -3
- data/tests/data/projects/simple-document/doc/pages/subdir/subdir/COMMON.yaml +0 -2
- data/tests/data/projects/simple-document/doc/pages/subdir/subdir/another_simple_document_in_subdir.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/yet_another_simple_document.dpl +0 -12
- data/tests/data/projects/simple-document/doc/pages/yet_another_simple_document.yaml +0 -8
- data/tests/gem_tests.rb +0 -4
- data/tests/spec_page.rb +0 -25
- data/tests/test.rb +0 -2
- data/tests/test_application.rb +0 -40
- data/tests/test_builtin_tasks.rb +0 -37
- data/tests/test_config.rb +0 -108
- data/tests/test_core.rb +0 -12
- data/tests/test_dokkit_commandline.rb +0 -18
- data/tests/test_exception.rb +0 -7
- data/tests/test_filters.rb +0 -46
- data/tests/test_layout.rb +0 -64
- data/tests/test_options.rb +0 -33
- data/tests/test_project_tasks.rb +0 -48
- data/tests/test_recursive_merge.rb +0 -42
- data/tests/test_task_factory.rb +0 -38
- /data/{CONTRIBUTORS → lib/dokkit/models/simpledocument/model/doc/data/css/style.css} +0 -0
- /data/{DONE → spec/data/test_build/doc/data/resource} +0 -0
- /data/{TODO → spec/data/test_build/doc/data/resource.exclude} +0 -0
- /data/{tests/pages/test.dpltex → spec/data/test_build/doc/data/subdir/resource.insubdir} +0 -0
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Test the extension: <%= extension %>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require 'dokkit/model'
|
|
2
|
+
|
|
3
|
+
MODEL = Dokkit::Model.init({'name' => 'test', 'from' => '.'}) do |model|
|
|
4
|
+
model.config.document_dir = 'doc/pages'
|
|
5
|
+
model.config.config_dir = 'doc/configs'
|
|
6
|
+
model.config.layout_dir = 'doc/layouts'
|
|
7
|
+
model.config.output_dir = 'output'
|
|
8
|
+
model.config.cache_dir = '.cache'
|
|
9
|
+
end
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
#
|
|
2
|
+
# File 'document_spec.rb' created on 13 gen 2008 at 17:46:37.
|
|
3
|
+
# See 'dokkit.rb' or +LICENSE+ for licence information.
|
|
4
|
+
#
|
|
5
|
+
# (c)2006, 2007 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
|
|
6
|
+
#
|
|
7
|
+
# To execute this spec run:
|
|
8
|
+
#
|
|
9
|
+
# spec spec/document_spec.rb
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__),'../lib'))
|
|
13
|
+
|
|
14
|
+
require 'rubygems'
|
|
15
|
+
require 'spec'
|
|
16
|
+
require 'dokkit'
|
|
17
|
+
require 'dokkit/document'
|
|
18
|
+
require 'dokkit/pathhelper'
|
|
19
|
+
require 'dokkit/filters/all'
|
|
20
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
21
|
+
|
|
22
|
+
describe 'a configured Document instance', :shared => true do
|
|
23
|
+
include SpecPathHelper, CaptureStdout
|
|
24
|
+
before(:all) do
|
|
25
|
+
@initial_dir = Dir.pwd
|
|
26
|
+
Dir.chdir(File.join(File.dirname(__FILE__), SpecPathHelper::DATA_TEST_DIR))
|
|
27
|
+
end
|
|
28
|
+
before do
|
|
29
|
+
@cache = Dokkit::CacheManager.instance
|
|
30
|
+
@cache.init('deps.yaml', '.cache')
|
|
31
|
+
@config = mock('config')
|
|
32
|
+
@config.should_receive(:document_dir).at_least(1).and_return(document_path)
|
|
33
|
+
@config.should_receive(:config_dir).at_least(1).and_return(config_path)
|
|
34
|
+
@config.should_receive(:layout_dir).at_least(1).and_return(layout_path)
|
|
35
|
+
@config.should_receive(:output_dir).at_least(1).and_return(output_path)
|
|
36
|
+
end
|
|
37
|
+
after(:all) do
|
|
38
|
+
Dir.chdir(@initial_dir)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Dokkit::Document, ' when initialized with document_1' do
|
|
43
|
+
|
|
44
|
+
it_should_behave_like 'a configured Document instance'
|
|
45
|
+
|
|
46
|
+
before do
|
|
47
|
+
@document = Dokkit::Document.new(document_path('document_1'), @config)
|
|
48
|
+
end
|
|
49
|
+
it 'should be initialized with the name of the source file' do
|
|
50
|
+
@document.document.should == document_path('document_1')
|
|
51
|
+
end
|
|
52
|
+
it 'should get the basename of the source file' do
|
|
53
|
+
@document.document_basename.should == 'document_1'
|
|
54
|
+
end
|
|
55
|
+
it 'should resolve its configuration files' do
|
|
56
|
+
@document.configs.should == [
|
|
57
|
+
config_path('document_1.yaml'),
|
|
58
|
+
document_path('COMMON.yaml'),
|
|
59
|
+
document_path('document_1.yaml'),
|
|
60
|
+
config_path('required.yaml')
|
|
61
|
+
]
|
|
62
|
+
end
|
|
63
|
+
it 'should read the configuration files and fill a configuration hash' do
|
|
64
|
+
@document.configuration.should_not be_empty
|
|
65
|
+
end
|
|
66
|
+
it 'should read document source file' do
|
|
67
|
+
@document.source_text.should =~ /\* Title for document_1/
|
|
68
|
+
end
|
|
69
|
+
it 'should define output targets' do
|
|
70
|
+
@document.targets['html'].should == output_path('document_1.html')
|
|
71
|
+
@document.targets['tex'].should == output_path('latex/document_1.latex')
|
|
72
|
+
end
|
|
73
|
+
it 'should define layouts grouped by output target' do
|
|
74
|
+
@document.layouts['html'].should == [layout_path('document_1.html')]
|
|
75
|
+
@document.layouts['tex'].should == [layout_path('document_1.latex')]
|
|
76
|
+
end
|
|
77
|
+
it 'should know the filters to use for rendering in the given output format' do
|
|
78
|
+
@document.filter_chain['html'].should == ['deplate-html']
|
|
79
|
+
@document.filter_chain['tex'].should == ['deplate-latex']
|
|
80
|
+
end
|
|
81
|
+
it 'should return the list of prerequisites grouped by output format' do
|
|
82
|
+
@document.prerequisites['html'].should include(
|
|
83
|
+
document_path('document_1'),
|
|
84
|
+
config_path('document_1.yaml'),
|
|
85
|
+
config_path('required.yaml'),
|
|
86
|
+
document_path('document_1.yaml'),
|
|
87
|
+
document_path('COMMON.yaml'),
|
|
88
|
+
layout_path('document_1.html')
|
|
89
|
+
)
|
|
90
|
+
end
|
|
91
|
+
describe ' and rendered in html' do
|
|
92
|
+
before do
|
|
93
|
+
@result = @document.render('html')
|
|
94
|
+
end
|
|
95
|
+
it 'should execute embedded erb code and render the document' do
|
|
96
|
+
@result.should =~ /test embedded erb/
|
|
97
|
+
end
|
|
98
|
+
it 'should render the content of the configuration hash' do
|
|
99
|
+
@result.should =~ /test configuration rendering/
|
|
100
|
+
@result.should =~ /test the correct merge/
|
|
101
|
+
end
|
|
102
|
+
it 'should return a default value if a configuration key is not found' do
|
|
103
|
+
@document.configuration['notexist'].should match(/'notexist' not defined/)
|
|
104
|
+
end
|
|
105
|
+
it 'should know which is the current format' do
|
|
106
|
+
@result.should =~ /Current rendering format is: html/
|
|
107
|
+
end
|
|
108
|
+
it 'should apply filters to render in html format' do
|
|
109
|
+
@result.should =~ /\<h1.*\>.*\<\/h1\>/
|
|
110
|
+
end
|
|
111
|
+
it 'should render partial inside it' do
|
|
112
|
+
@result.should =~ /partial should be rendered/
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
describe ' and rendered in tex' do
|
|
116
|
+
before do
|
|
117
|
+
@result = @document.render('tex')
|
|
118
|
+
end
|
|
119
|
+
it 'should apply filters to render in html format' do
|
|
120
|
+
@result.should =~ /\\section\{.*\}/
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
describe Dokkit::Document, ' when initialized with document_nolayout.ext' do
|
|
126
|
+
|
|
127
|
+
it_should_behave_like 'a configured Document instance'
|
|
128
|
+
|
|
129
|
+
before do
|
|
130
|
+
@document = Dokkit::Document.new(document_path('document_nolayout.ext'), @config)
|
|
131
|
+
end
|
|
132
|
+
it 'should define output targets' do
|
|
133
|
+
@document.targets['html'].should == output_path('document_nolayout.html')
|
|
134
|
+
end
|
|
135
|
+
it 'should set a nil layout' do
|
|
136
|
+
@document.layouts['html'].should be_empty
|
|
137
|
+
end
|
|
138
|
+
it 'should know the filters to use for rendering in the given output format' do
|
|
139
|
+
@document.filter_chain['html'].should == ['deplate-html']
|
|
140
|
+
end
|
|
141
|
+
it 'should return the list of prerequisites grouped by output format' do
|
|
142
|
+
@document.prerequisites['html'].should include(
|
|
143
|
+
document_path('document_nolayout.ext'),
|
|
144
|
+
document_path('document_nolayout.yaml'),
|
|
145
|
+
document_path('COMMON.yaml')
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
it 'should resolve its configuration files' do
|
|
149
|
+
@document = Dokkit::Document.new(document_path('document_nolayout.ext'), @config)
|
|
150
|
+
@document.configs.should == [
|
|
151
|
+
document_path('COMMON.yaml'),
|
|
152
|
+
document_path('document_nolayout.yaml'),
|
|
153
|
+
]
|
|
154
|
+
end
|
|
155
|
+
it 'should raise a -layout not found- warning' do
|
|
156
|
+
capture_stderr do
|
|
157
|
+
@document = Dokkit::Document.new(document_path('document_nolayout.ext'), @config)
|
|
158
|
+
end.should match(/Layout not found/)
|
|
159
|
+
end
|
|
160
|
+
describe ' and rendered in html' do
|
|
161
|
+
before do
|
|
162
|
+
@document = Dokkit::Document.new(document_path('document_nolayout.ext'), @config)
|
|
163
|
+
@result = @document.render('html')
|
|
164
|
+
end
|
|
165
|
+
it 'should apply filters to render in html format' do
|
|
166
|
+
@result.should =~ /\<h1.*\>.*\<\/h1\>/
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
describe Dokkit::Document, ' when initialized with subdir/document_4' do
|
|
172
|
+
|
|
173
|
+
it_should_behave_like 'a configured Document instance'
|
|
174
|
+
|
|
175
|
+
before do
|
|
176
|
+
@document = Dokkit::Document.new(document_path('subdir/document_4'), @config)
|
|
177
|
+
end
|
|
178
|
+
it 'should get the basename of the source file' do
|
|
179
|
+
@document.document_basename == 'document_4'
|
|
180
|
+
end
|
|
181
|
+
it 'should resolve its configuration files' do
|
|
182
|
+
@document.configs.should == [
|
|
183
|
+
config_path('subdir/document_4.yaml'),
|
|
184
|
+
File.expand_path(document_path('COMMON.yaml')),
|
|
185
|
+
document_path('subdir/COMMON.yaml'),
|
|
186
|
+
]
|
|
187
|
+
end
|
|
188
|
+
it 'should define output targets' do
|
|
189
|
+
@document.targets['html'].should == output_path('subdir/document_4.html')
|
|
190
|
+
end
|
|
191
|
+
it 'should define layouts grouped by output format' do
|
|
192
|
+
@document.layouts['html'].should == [layout_path('document_1.html')]
|
|
193
|
+
end
|
|
194
|
+
it 'should know the filters to use for rendering in the given output format' do
|
|
195
|
+
@document.filter_chain['html'].should == ['deplate-html']
|
|
196
|
+
end
|
|
197
|
+
it 'should resolve relative path' do
|
|
198
|
+
@document.relative('/images/image.img').should == '../images/image.img'
|
|
199
|
+
end
|
|
200
|
+
describe ' and rendered in html' do
|
|
201
|
+
before do
|
|
202
|
+
@result = @document.render('html')
|
|
203
|
+
end
|
|
204
|
+
it 'should apply filters to render in html format' do
|
|
205
|
+
@result.should =~ /\<h1.*\>.*\<\/h1\>/
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
describe Dokkit::Document, ' when initialized with subdir/subdir/document_6' do
|
|
211
|
+
|
|
212
|
+
it_should_behave_like 'a configured Document instance'
|
|
213
|
+
|
|
214
|
+
before do
|
|
215
|
+
@document = Dokkit::Document.new(document_path('subdir/subdir/document_6'), @config)
|
|
216
|
+
end
|
|
217
|
+
it 'should resolve its configuration files' do
|
|
218
|
+
@document.configs.should == [
|
|
219
|
+
File.expand_path(document_path('COMMON.yaml')),
|
|
220
|
+
File.expand_path(document_path('subdir/COMMON.yaml')),
|
|
221
|
+
document_path('subdir/subdir/COMMON.yaml'),
|
|
222
|
+
]
|
|
223
|
+
end
|
|
224
|
+
it 'should define output targets' do
|
|
225
|
+
@document.targets['html'].should == output_path('subdir/subdir/document_6.html')
|
|
226
|
+
end
|
|
227
|
+
it 'should define layouts grouped by output target' do
|
|
228
|
+
@document.layouts['html'].should == [layout_path('document_1.html')]
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
describe Dokkit::Document, ' when initialized with document_7' do
|
|
233
|
+
|
|
234
|
+
it_should_behave_like 'a configured Document instance'
|
|
235
|
+
|
|
236
|
+
before do
|
|
237
|
+
@document = Dokkit::Document.new(document_path('document_7'), @config)
|
|
238
|
+
end
|
|
239
|
+
it 'should resolve its configuration files' do
|
|
240
|
+
@document.configs.should == [
|
|
241
|
+
document_path('COMMON.yaml'),
|
|
242
|
+
document_path('document_7.yaml'),
|
|
243
|
+
]
|
|
244
|
+
end
|
|
245
|
+
it 'should define output targets' do
|
|
246
|
+
@document.targets['html'].should == output_path('document_7.html')
|
|
247
|
+
end
|
|
248
|
+
it 'should define layouts grouped by output target' do
|
|
249
|
+
@document.layouts['html'].should == [layout_path('document_1.html')]
|
|
250
|
+
end
|
|
251
|
+
describe ' and rendered in html using maruku filter' do
|
|
252
|
+
before do
|
|
253
|
+
@result = @document.render('html')
|
|
254
|
+
end
|
|
255
|
+
it 'should apply filters to render in html format' do
|
|
256
|
+
@result.should =~ /\<h1.*\>.*\<\/h1\>/
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
describe ' and rendered using a not defined target format' do
|
|
260
|
+
it 'should raise an error' do
|
|
261
|
+
lambda {
|
|
262
|
+
@document.render('notexistent')
|
|
263
|
+
}.should raise_error(RuntimeError, /Don't know how to render in '.*' format!/)
|
|
264
|
+
end
|
|
265
|
+
it 'should warn that a filter was not found' do
|
|
266
|
+
capture_stderr do
|
|
267
|
+
@document.render('html')
|
|
268
|
+
end.should match(/Filter '.*' not found/)
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
describe Dokkit::Document, ' when initialized with document_with_partials' do
|
|
274
|
+
|
|
275
|
+
it_should_behave_like 'a configured Document instance'
|
|
276
|
+
|
|
277
|
+
before do
|
|
278
|
+
@document = Dokkit::Document.new(document_path('document_with_partials'), @config)
|
|
279
|
+
end
|
|
280
|
+
describe ' and rendered in html' do
|
|
281
|
+
it 'should fail if a circular dependency is detected' do
|
|
282
|
+
lambda { @document.render('html') }.should raise_error(RuntimeError, /Circular dependency detected in/)
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
describe Dokkit::Document, ' when initialized with document_nested' do
|
|
288
|
+
|
|
289
|
+
it_should_behave_like 'a configured Document instance'
|
|
290
|
+
|
|
291
|
+
before do
|
|
292
|
+
@result = Dokkit::Document.new(document_path('document_nested'), @config).render('html')
|
|
293
|
+
end
|
|
294
|
+
describe ' and rendered in html' do
|
|
295
|
+
it 'should render nested layout' do
|
|
296
|
+
@result.should match(/<div class=\"nested\"/)
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
describe Dokkit::Document, ' when initialized with document_3' do
|
|
302
|
+
|
|
303
|
+
it_should_behave_like 'a configured Document instance'
|
|
304
|
+
|
|
305
|
+
before do
|
|
306
|
+
@document = Dokkit::Document.new(document_path('document_3'), @config)
|
|
307
|
+
end
|
|
308
|
+
it 'should read the meta configuration inside it' do
|
|
309
|
+
@document.configuration['key'].should == 'value'
|
|
310
|
+
end
|
|
311
|
+
it 'should collect config file in meta configuration' do
|
|
312
|
+
@document.configs.should == [
|
|
313
|
+
document_path('COMMON.yaml'),
|
|
314
|
+
config_path('document_1.yaml'),
|
|
315
|
+
]
|
|
316
|
+
end
|
|
317
|
+
it 'should read configuration from config file' do
|
|
318
|
+
@document.configuration['test_config_merge'].should match(/test the correct merge/)
|
|
319
|
+
end
|
|
320
|
+
end
|
|
321
|
+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#
|
|
2
|
+
# File 'dokkitlib_spec.rb' created on 18 feb 2008 at 17:49:23.
|
|
3
|
+
# See 'dokkit.rb' or +LICENSE+ for licence information.
|
|
4
|
+
#
|
|
5
|
+
# (c)2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
|
|
6
|
+
#
|
|
7
|
+
# To execute this spec run:
|
|
8
|
+
#
|
|
9
|
+
# spec spec/dokkitlib_spec.rb
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../lib')))
|
|
14
|
+
|
|
15
|
+
require 'rubygems'
|
|
16
|
+
require 'spec'
|
|
17
|
+
require 'dokkit'
|
|
18
|
+
require 'dokkit/dokkitlib'
|
|
19
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
20
|
+
|
|
21
|
+
describe Dokkit::DokkitLib, ' when initialized' do
|
|
22
|
+
include SpecPathHelper
|
|
23
|
+
|
|
24
|
+
before do
|
|
25
|
+
class Dokkit::DokkitLib
|
|
26
|
+
private
|
|
27
|
+
def define_dokkit_task
|
|
28
|
+
dokkit_task 'test' => 'dep'
|
|
29
|
+
end
|
|
30
|
+
def pre_block_configuration
|
|
31
|
+
@config.another_test_option = 'default value'
|
|
32
|
+
end
|
|
33
|
+
def post_block_configuration
|
|
34
|
+
@config.yet_another_test_option = @config.test_option
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
model = mock('model')
|
|
38
|
+
model.should_receive(:config).and_return(OpenStruct.new)
|
|
39
|
+
@dokkittask = Dokkit::DokkitLib.new(model, 'dokkit') do |task|
|
|
40
|
+
task.config.test_dir = 'test_dir/'
|
|
41
|
+
task.config.test_option = 'test_option'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
it 'should define a namespace for its tasks' do
|
|
45
|
+
@dokkittask.ns.should_not be_empty
|
|
46
|
+
end
|
|
47
|
+
it 'should be initialized with a configuration hash' do
|
|
48
|
+
@dokkittask.config.test_dir.should == 'test_dir/'
|
|
49
|
+
@dokkittask.config.test_option.should == 'test_option'
|
|
50
|
+
end
|
|
51
|
+
it 'should do pre configuration' do
|
|
52
|
+
@dokkittask.config.another_test_option.should == 'default value'
|
|
53
|
+
end
|
|
54
|
+
it 'should do post configuration' do
|
|
55
|
+
@dokkittask.config.yet_another_test_option.should == @dokkittask.config.test_option
|
|
56
|
+
end
|
|
57
|
+
it 'should encapsulate the tasks defined in its namespace' do
|
|
58
|
+
task('dokkit:test').prerequisites.should == ['dep']
|
|
59
|
+
end
|
|
60
|
+
it 'should define the same task only once' do
|
|
61
|
+
@dokkittask.dokkit_task('test' => 'dep').should be_nil
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#
|
|
2
|
+
# File 'filehelper_spec.rb' created on 28 feb 2008 at 16:44:07.
|
|
3
|
+
# See 'dokkit.rb' or +LICENSE+ for licence information.
|
|
4
|
+
#
|
|
5
|
+
# (c)2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
|
|
6
|
+
#
|
|
7
|
+
# To execute this spec run:
|
|
8
|
+
#
|
|
9
|
+
# spec spec/filehelper_spec.rb
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../lib')))
|
|
14
|
+
|
|
15
|
+
require 'rubygems'
|
|
16
|
+
require 'spec'
|
|
17
|
+
require 'dokkit'
|
|
18
|
+
require 'dokkit/extension/filehelper'
|
|
19
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
20
|
+
|
|
21
|
+
describe Dokkit::Extension::FileHelper do
|
|
22
|
+
before do
|
|
23
|
+
@document = mock('document')
|
|
24
|
+
@document.extend Dokkit::Extension::FileHelper
|
|
25
|
+
end
|
|
26
|
+
it 'should resolve the absolute path name' do
|
|
27
|
+
@taskconfig = mock('taskconfig')
|
|
28
|
+
@taskconfig.should_receive(:document_dir).and_return('doc/pages')
|
|
29
|
+
@document.should_receive(:taskconfig).and_return(@taskconfig)
|
|
30
|
+
@document.should_receive(:document).and_return('doc/pages/subdir/document.ext')
|
|
31
|
+
@document.relative('/images/image.img').should == '../images/image.img'
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|