dokkit 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +90 -105
  3. data/README.txt +27 -7
  4. data/Rakefile +2 -3
  5. data/bin/dokkit +3 -2
  6. data/lib/dokkit/application.rb +159 -0
  7. data/lib/dokkit/cache/cache.rb +53 -0
  8. data/lib/dokkit/{models/simpledocument/model/Rakefile → cache.rb} +3 -15
  9. data/lib/dokkit/environment/basic.rb +156 -0
  10. data/lib/dokkit/environment/helpers/extmap.rb +29 -0
  11. data/lib/dokkit/environment/helpers/fileselection.rb +53 -0
  12. data/lib/dokkit/environment/helpers.rb +20 -0
  13. data/{spec/data/test_build/Rakefile → lib/dokkit/environment.rb} +4 -15
  14. data/lib/dokkit/factory/factory.rb +56 -0
  15. data/lib/dokkit/factory.rb +9 -0
  16. data/lib/dokkit/filters/deplate.rb +25 -20
  17. data/lib/dokkit/filters/maruku.rb +6 -5
  18. data/lib/dokkit/filters/nil.rb +7 -6
  19. data/lib/dokkit/filters.rb +5 -27
  20. data/lib/dokkit/hash.rb +82 -0
  21. data/lib/dokkit/{logger.rb → logging/logger.rb} +30 -24
  22. data/lib/dokkit/logging/observers/console.rb +52 -0
  23. data/lib/dokkit/{extension/extension.rb → logging/observers.rb} +7 -5
  24. data/lib/dokkit/logging.rb +11 -0
  25. data/lib/dokkit/models/simple/Rakefile +6 -0
  26. data/lib/dokkit/models/simple/doc/data/html/css/style.css +3 -0
  27. data/lib/dokkit/models/simple/doc/data/latex/deplate.sty +46 -0
  28. data/lib/dokkit/models/simple/doc/layouts/simple.html +9 -0
  29. data/lib/dokkit/models/simple/doc/layouts/simple.latex +11 -0
  30. data/lib/dokkit/models/simple/doc/pages/simple.deplate +80 -0
  31. data/lib/dokkit/models/simple/setup/setup.rb +10 -0
  32. data/lib/dokkit/resource/data.rb +36 -0
  33. data/lib/dokkit/resource/document.rb +385 -0
  34. data/lib/dokkit/resource/extensions/builtin.rb +19 -0
  35. data/lib/dokkit/resource/extensions/html.rb +22 -0
  36. data/lib/dokkit/resource/extensions/url.rb +25 -0
  37. data/lib/dokkit/{filters/base.rb → resource/extensions.rb} +7 -8
  38. data/lib/dokkit/resource/filenamehelper.rb +28 -0
  39. data/lib/dokkit/resource.rb +11 -0
  40. data/lib/dokkit/tasklib/clean.rb +73 -0
  41. data/lib/dokkit/tasklib/render.rb +137 -0
  42. data/lib/dokkit/tasklib.rb +11 -0
  43. data/lib/dokkit.rb +26 -29
  44. data/spec/dokkit/application_spec.rb +141 -0
  45. data/spec/dokkit/cache/cache_spec.rb +87 -0
  46. data/spec/dokkit/dokkit_spec.rb +20 -0
  47. data/spec/dokkit/environment/basic_spec.rb +135 -0
  48. data/spec/dokkit/environment/helpers/extmap_spec.rb +52 -0
  49. data/spec/dokkit/environment/helpers/fileselection_spec.rb +80 -0
  50. data/spec/dokkit/environment/test_data/doc/pages/document_1.yaml +3 -0
  51. data/spec/dokkit/factory/factory_spec.rb +69 -0
  52. data/spec/{filter_deplate_spec.rb → dokkit/filters/deplate_spec.rb} +7 -8
  53. data/spec/{filter_maruku_spec.rb → dokkit/filters/maruku_spec.rb} +3 -4
  54. data/spec/{filter_nil_spec.rb → dokkit/filters/nil_spec.rb} +3 -4
  55. data/spec/{recursivemerge_spec.rb → dokkit/hash_spec.rb} +25 -27
  56. data/spec/{logger_spec.rb → dokkit/logging/logger_spec.rb} +35 -47
  57. data/spec/{consolelog_spec.rb → dokkit/logging/observers/console_spec.rb} +14 -15
  58. data/spec/dokkit/resource/data_spec.rb +32 -0
  59. data/spec/dokkit/resource/document_spec.rb +485 -0
  60. data/spec/dokkit/resource/extensions/html_spec.rb +35 -0
  61. data/spec/dokkit/resource/extensions/url_spec.rb +29 -0
  62. data/spec/{filehelper_spec.rb → dokkit/resource/filenamehelper_spec.rb} +12 -13
  63. data/spec/dokkit/resource/test_data/doc/configs/config_1.yaml +3 -0
  64. data/spec/dokkit/resource/test_data/doc/configs/config_2.yaml +3 -0
  65. data/spec/dokkit/resource/test_data/doc/configs/required.yaml +3 -0
  66. data/spec/dokkit/resource/test_data/doc/configs/subdir/document.yaml +3 -0
  67. data/spec/dokkit/resource/test_data/doc/layouts/container.html +6 -0
  68. data/spec/dokkit/resource/test_data/doc/layouts/layout.html +6 -0
  69. data/spec/{data/test_build/doc/layouts → dokkit/resource/test_data/doc/layouts/nested}/nested.html +2 -1
  70. data/spec/dokkit/resource/test_data/doc/layouts/subdir/document.html +6 -0
  71. data/spec/dokkit/resource/test_data/doc/pages/COMMON.yaml +4 -0
  72. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_config.ext +7 -0
  73. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_errors.ext +12 -0
  74. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_targets.ext +19 -0
  75. data/spec/dokkit/resource/test_data/doc/pages/document_with_nested_layout.ext +13 -0
  76. data/spec/dokkit/resource/test_data/doc/pages/document_with_nil_target.ext +5 -0
  77. data/spec/dokkit/resource/test_data/doc/pages/document_with_not_defined_target.ext +6 -0
  78. data/spec/dokkit/resource/test_data/doc/pages/document_with_one_target.ext +8 -0
  79. data/spec/dokkit/resource/test_data/doc/pages/subdir/COMMON.yaml +3 -0
  80. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.ext +8 -0
  81. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.yaml +5 -0
  82. data/spec/dokkit/tasklib/clean_spec.rb +75 -0
  83. data/spec/dokkit/tasklib/render_spec.rb +125 -0
  84. data/spec/dokkit/tasklib/test_data/doc/pages/document_2 +0 -0
  85. data/spec/dokkit/test_data/dokkit/models/model1/doc/pages/model1 +0 -0
  86. data/spec/dokkit/test_data/dokkit/models/model2/doc/pages/model2 +0 -0
  87. data/spec/spec.opts +4 -0
  88. data/spec/spec_helper.rb +120 -47
  89. metadata +94 -117
  90. data/lib/dokkit/app.rb +0 -131
  91. data/lib/dokkit/builtintask.rb +0 -85
  92. data/lib/dokkit/cachemanager.rb +0 -61
  93. data/lib/dokkit/cleantask.rb +0 -51
  94. data/lib/dokkit/consolelog.rb +0 -42
  95. data/lib/dokkit/defaults.rb +0 -19
  96. data/lib/dokkit/deplate/fmt/html-notemplate.rb +0 -21
  97. data/lib/dokkit/deplate/fmt/latex-notemplate.rb +0 -24
  98. data/lib/dokkit/document.rb +0 -221
  99. data/lib/dokkit/dokkitlib.rb +0 -68
  100. data/lib/dokkit/extension/filehelper.rb +0 -25
  101. data/lib/dokkit/fileselection.rb +0 -44
  102. data/lib/dokkit/filters/all.rb +0 -18
  103. data/lib/dokkit/model.rb +0 -34
  104. data/lib/dokkit/models/simpledocument/model/doc/layouts/simpledocument.html +0 -9
  105. data/lib/dokkit/models/simpledocument/model/doc/pages/simpledocument.deplate +0 -102
  106. data/lib/dokkit/models/simpledocument/model/tasks/all.rb +0 -3
  107. data/lib/dokkit/models/simpledocument/model/tasks/clean.rake +0 -3
  108. data/lib/dokkit/models/simpledocument/model/tasks/render.rake +0 -8
  109. data/lib/dokkit/models/simpledocument/model/tasks/setup.rb +0 -9
  110. data/lib/dokkit/modeltask.rb +0 -83
  111. data/lib/dokkit/pathhelper.rb +0 -46
  112. data/lib/dokkit/recursivemerge.rb +0 -59
  113. data/lib/dokkit/rendertask.rb +0 -101
  114. data/lib/dokkit/resourcemanager.rb +0 -177
  115. data/lib/dokkit/taskconfig.rb +0 -39
  116. data/lib/dokkit/templatetask.rb +0 -37
  117. data/spec/app_spec.rb +0 -55
  118. data/spec/builtintask_spec.rb +0 -114
  119. data/spec/cachemanager_spec.rb +0 -107
  120. data/spec/cleantask_spec.rb +0 -72
  121. data/spec/data/test_build/doc/configs/document_1.yaml +0 -3
  122. data/spec/data/test_build/doc/configs/required.yaml +0 -3
  123. data/spec/data/test_build/doc/configs/subdir/document_4.yaml +0 -3
  124. data/spec/data/test_build/doc/layouts/document_1.html +0 -9
  125. data/spec/data/test_build/doc/layouts/document_with_partials.html +0 -9
  126. data/spec/data/test_build/doc/layouts/layout.html +0 -8
  127. data/spec/data/test_build/doc/layouts/layout.html.backup +0 -8
  128. data/spec/data/test_build/doc/layouts/partials/partial.html +0 -4
  129. data/spec/data/test_build/doc/pages/COMMON.yaml +0 -6
  130. data/spec/data/test_build/doc/pages/document_1 +0 -20
  131. data/spec/data/test_build/doc/pages/document_1.dep +0 -4
  132. data/spec/data/test_build/doc/pages/document_1.yaml +0 -11
  133. data/spec/data/test_build/doc/pages/document_2 +0 -9
  134. data/spec/data/test_build/doc/pages/document_2.yaml +0 -6
  135. data/spec/data/test_build/doc/pages/document_3 +0 -13
  136. data/spec/data/test_build/doc/pages/document_7 +0 -4
  137. data/spec/data/test_build/doc/pages/document_7.yaml +0 -5
  138. data/spec/data/test_build/doc/pages/document_extended +0 -1
  139. data/spec/data/test_build/doc/pages/document_nested +0 -6
  140. data/spec/data/test_build/doc/pages/document_nested.yaml +0 -5
  141. data/spec/data/test_build/doc/pages/document_nolayout.ext +0 -3
  142. data/spec/data/test_build/doc/pages/document_nolayout.yaml +0 -2
  143. data/spec/data/test_build/doc/pages/document_with_partials +0 -3
  144. data/spec/data/test_build/doc/pages/document_with_partials.yaml +0 -2
  145. data/spec/data/test_build/doc/pages/partials/COMMON.yaml +0 -5
  146. data/spec/data/test_build/doc/pages/partials/circular_partial +0 -2
  147. data/spec/data/test_build/doc/pages/partials/circular_partial.yaml +0 -3
  148. data/spec/data/test_build/doc/pages/partials/partial +0 -2
  149. data/spec/data/test_build/doc/pages/subdir/COMMON.yaml +0 -2
  150. data/spec/data/test_build/doc/pages/subdir/document_4 +0 -11
  151. data/spec/data/test_build/doc/pages/subdir/subdir/COMMON.yaml +0 -2
  152. data/spec/data/test_build/doc/pages/subdir/subdir/document_6 +0 -3
  153. data/spec/data/test_build/tasks/all.rb +0 -3
  154. data/spec/data/test_build/tasks/clean.rake +0 -3
  155. data/spec/data/test_build/tasks/render.rake +0 -8
  156. data/spec/data/test_build/tasks/setup.rb +0 -9
  157. data/spec/data/test_build/tasks/template.rake +0 -3
  158. data/spec/document_spec.rb +0 -321
  159. data/spec/dokkitlib_spec.rb +0 -63
  160. data/spec/fileselection_spec.rb +0 -101
  161. data/spec/filter_base_spec.rb +0 -29
  162. data/spec/filters_spec.rb +0 -37
  163. data/spec/model_spec.rb +0 -45
  164. data/spec/pathhelper_spec.rb +0 -62
  165. data/spec/rendertask_spec.rb +0 -374
  166. data/spec/taskconfig_spec.rb +0 -45
  167. data/spec/templatetask_spec.rb +0 -72
  168. /data/lib/dokkit/models/{simpledocument/model/doc/configs/simpledocument.yaml → simple/doc/configs/simple.yaml} +0 -0
  169. /data/lib/dokkit/models/{simpledocument/model/doc/layouts/simpledocument.text → simple/doc/layouts/simple.text} +0 -0
  170. /data/{lib/dokkit/models/simpledocument/model/doc/data/css/style.css → spec/dokkit/environment/helpers/test_data/doc/pages/document_1.ext_1} +0 -0
  171. /data/spec/{data/test_build/doc/data/resource → dokkit/environment/helpers/test_data/doc/pages/document_2} +0 -0
  172. /data/spec/{data/test_build/doc/data/resource.exclude → dokkit/environment/helpers/test_data/doc/pages/document_3.ext_3} +0 -0
  173. /data/spec/{data/test_build/doc/data/subdir/resource.insubdir → dokkit/environment/test_data/doc/data/data} +0 -0
  174. /data/spec/{data/test_build/doc/layouts/layout → dokkit/environment/test_data/doc/pages/document_1} +0 -0
  175. /data/spec/{data/test_build/doc/pages/document_2.dep → dokkit/environment/test_data/doc/pages/document_2} +0 -0
  176. /data/spec/{data/test_build/doc/pages/document_5.exclude → dokkit/environment/test_data/doc/pages/subdir/document_1} +0 -0
  177. /data/{lib/dokkit/models/simpledocument/model/doc/layouts/simpledocument.latex → spec/dokkit/resource/test_data/doc/layouts/layout.latex} +0 -0
  178. /data/spec/{data/test_build/doc/layouts/document_1.latex → dokkit/resource/test_data/doc/layouts/subdir/document.latex} +0 -0
  179. /data/spec/{data/test_build/templates/layouts/layout → dokkit/tasklib/test_data/doc/data/data_1} +0 -0
  180. /data/spec/{data/test_build/templates/pages/template → dokkit/tasklib/test_data/doc/pages/document_1} +0 -0
@@ -1,321 +0,0 @@
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
-
@@ -1,63 +0,0 @@
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
@@ -1,101 +0,0 @@
1
- #
2
- # File 'fileselect_spec.rb' created on 07 feb 2008 at 15:46:04.
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/fileselect_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/fileselection'
19
- require File.dirname(__FILE__) + '/spec_helper.rb'
20
-
21
- describe Dokkit::FileSelection, ' when initialized' do
22
- include SpecPathHelper
23
- before(:all) do
24
- @initial_dir = Dir.pwd
25
- Dir.chdir(File.join(File.dirname(__FILE__), SpecPathHelper::DATA_TEST_DIR))
26
- end
27
- it 'should set the current dir as default base path' do
28
- fs = Dokkit::FileSelection.new
29
- fs.base_dir.should == '.'
30
- end
31
- it 'should set the given directory as the base path for all operations' do
32
- fs = Dokkit::FileSelection.new(document_path)
33
- fs.base_dir.should == document_path
34
- end
35
-
36
- after(:all) do
37
- Dir.chdir(@initial_dir)
38
- end
39
- end
40
-
41
- describe Dokkit::FileSelection, ' when extended with ExtMapping' do
42
- include SpecPathHelper
43
- before(:all) do
44
- @initial_dir = Dir.pwd
45
- Dir.chdir(File.join(File.dirname(__FILE__), SpecPathHelper::DATA_TEST_DIR))
46
- @fs = Dokkit::FileSelection.new(document_path) do |fs|
47
- fs.include('*')
48
- end
49
- @fs.extend Dokkit::ExtMapping
50
- end
51
- it 'should map an extension for document_1' do
52
- @fs.extend(/document_1$/) { "extended" }
53
- @fs.extmapping.should have(1).items
54
- @fs.extmapping[document_path('document_1')].call.should == "extended"
55
- end
56
- it 'should map an extension for all documents' do
57
- @fs.extend { "extended" }
58
- @fs.extmapping.should have(18).items
59
- end
60
- after(:all) do
61
- Dir.chdir(@initial_dir)
62
- end
63
- end
64
-
65
- describe Dokkit::FileSelection, '#files' do
66
- include SpecPathHelper
67
- before(:all) do
68
- @initial_dir = Dir.pwd
69
- Dir.chdir(File.join(File.dirname(__FILE__), SpecPathHelper::DATA_TEST_DIR))
70
- end
71
- it 'should return an array with the list of the included files in the given directory' do
72
- Dokkit::FileSelection.new(document_path) do |fs|
73
- fs.include('*')
74
- end.files.should have(18).items
75
- end
76
- it 'should not include files that was explicity excluded' do
77
- Dokkit::FileSelection.new(document_path) do |fs|
78
- fs.exclude('*.exclude')
79
- end.files.should_not include(document_path('document_5.exclude'))
80
- end
81
- it 'should include only the files that was explicity included' do
82
- Dokkit::FileSelection.new(document_path) do |fs|
83
- fs.include('*.yaml')
84
- end.files.should include(document_path('COMMON.yaml'))
85
- end
86
- it 'should not include the same files' do
87
- Dokkit::FileSelection.new(document_path) do |fs|
88
- fs.include('*')
89
- fs.include('*')
90
- end.files.should have(18).items
91
- end
92
- it 'should not include directory' do
93
- Dokkit::FileSelection.new(document_path) do |fs|
94
- fs.include('**/*')
95
- end.files.should_not include(document_path('subdir'))
96
- end
97
- after(:all) do
98
- Dir.chdir(@initial_dir)
99
- end
100
- end
101
-
@@ -1,29 +0,0 @@
1
- #
2
- # File 'filter_base_spec.rb' created on 18 feb 2008 at 14:48:04.
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/filter_base_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/filters/base'
19
- require File.dirname(__FILE__) + '/spec_helper.rb'
20
-
21
- describe Dokkit::Filters::Base do
22
- before do
23
- @filter = Dokkit::Filters::Base.new
24
- end
25
- it 'should define an instance method to transform the given text' do
26
- @result = @filter.filter('text to transform').should be_nil
27
- end
28
- end
29
-
data/spec/filters_spec.rb DELETED
@@ -1,37 +0,0 @@
1
- #
2
- # File 'filter_spec.rb' created on 15 feb 2008 at 22:25:12.
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/filter_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/filters'
19
- require File.dirname(__FILE__) + '/spec_helper.rb'
20
-
21
- describe Dokkit::Filters do
22
- it 'should register new filters' do
23
- Filter = mock('Filter')
24
- @filter = mock('filter')
25
- Filter.should_receive(:new).and_return(@filter)
26
- @filter.should_receive(:class).and_return('Filter')
27
- Dokkit::Filters.register('filter') do
28
- Filter.new
29
- end
30
- Dokkit::Filters['filter'].class.should == 'Filter'
31
- end
32
- it 'should raise an error if a non existent filter is called' do
33
- lambda {
34
- Dokkit::Filters['notexists']
35
- }.should raise_error(RuntimeError, /Filter '.*' is not defined!/)
36
- end
37
- end
data/spec/model_spec.rb DELETED
@@ -1,45 +0,0 @@
1
- #
2
- # File 'model_spec.rb' created on 10 mar 2008 at 13:36:29.
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/model_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/model'
19
- require File.dirname(__FILE__) + '/spec_helper.rb'
20
-
21
- describe Dokkit::Model, ' when initialized' do
22
- include SpecPathHelper
23
- before(:all) do
24
- @initial_dir = Dir.pwd
25
- Dir.chdir(File.join(File.dirname(__FILE__), SpecPathHelper::DATA_TEST_DIR))
26
- end
27
- before do
28
- @model = Dokkit::Model.init do |model|
29
- model.config.cache_dir = cache_path
30
- end
31
- end
32
- after(:all) do
33
- Dir.chdir(@initial_dir)
34
- end
35
- it 'should be instantiated only once' do
36
- Dokkit::Model.init.object_id.should == @model.object_id
37
- end
38
- it 'should be initialized with a name' do
39
- Dokkit::Model.init('simpledocument').name == 'simpledocument'
40
- end
41
- it 'should instantiate a TaskConfig object' do
42
- @model.config.class.should == Dokkit::TaskConfig
43
- end
44
- end
45
-
@@ -1,62 +0,0 @@
1
- #
2
- # File 'pathhelper_spec.rb' created on 15 feb 2008 at 16:36:50.
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/pathhelper_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/pathhelper'
19
- require File.dirname(__FILE__) + '/spec_helper.rb'
20
-
21
- describe Dokkit::PathHelper do
22
- include SpecPathHelper
23
- before do
24
- @config = mock('config')
25
- end
26
- it 'should define a method to transform source file path and extension' do
27
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'document')
28
- filename_helper(source_fn, SpecPathHelper::DOCUMENT_PATH, 'newdir', '.newext').should == 'newdir/document.newext'
29
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'subdir/document')
30
- filename_helper(source_fn, SpecPathHelper::DOCUMENT_PATH, 'newdir', '.newext').should == 'newdir/subdir/document.newext'
31
- end
32
- it 'should return a configuration filename given a source filename' do
33
- @config.should_receive(:document_dir).and_return(SpecPathHelper::DOCUMENT_PATH)
34
- @config.should_receive(:config_dir).and_return(SpecPathHelper::CONFIG_PATH)
35
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'document')
36
- config_fn_helper(source_fn, @config).should == 'doc/configs/document.yaml'
37
- end
38
- it 'should return a layout filename given a source filename' do
39
- @config.should_receive(:document_dir).twice.and_return(SpecPathHelper::DOCUMENT_PATH)
40
- @config.should_receive(:layout_dir).twice.and_return(SpecPathHelper::LAYOUT_PATH)
41
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'document')
42
- layout_fn_helper(source_fn, '.html', @config).should == 'doc/layouts/document.html'
43
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'subdir/document')
44
- layout_fn_helper(source_fn, '.html', @config).should == 'doc/layouts/subdir/document.html'
45
- end
46
- it 'should return a target filename given a source filename' do
47
- @config.should_receive(:document_dir).and_return(SpecPathHelper::DOCUMENT_PATH)
48
- @config.should_receive(:output_dir).and_return(SpecPathHelper::OUTPUT_PATH)
49
- source_fn = File.join(SpecPathHelper::DOCUMENT_PATH, 'document')
50
- output_fn_helper(source_fn, '.html', @config).should == 'output/document.html'
51
- end
52
- it 'should return a target data filename given a source data filename' do
53
- @config.should_receive(:data_dir).and_return(SpecPathHelper::DATA_PATH)
54
- @config.should_receive(:output_dir).and_return(SpecPathHelper::OUTPUT_PATH)
55
- source_fn = File.join(SpecPathHelper::DATA_PATH, 'resource')
56
- data_fn_helper(source_fn, @config).should == 'output/resource'
57
- end
58
- it 'should define a method to strip extension from file' do
59
- strip_ext('test.ext').should == 'test'
60
- strip_ext('.test.ext.ext').should == '.test.ext'
61
- end
62
- end