dokkit 0.4.1 → 0.4.2

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.
Files changed (68) hide show
  1. data/Manifest.txt +1 -59
  2. data/lib/dokkit.rb +1 -1
  3. data/lib/dokkit/environment/basic.rb +23 -8
  4. data/lib/dokkit/filters.rb +1 -0
  5. data/lib/dokkit/filters/erb.rb +3 -3
  6. data/lib/dokkit/filters/haml.rb +31 -0
  7. data/lib/dokkit/models/simple/doc/layouts/simple.html +1 -1
  8. data/lib/dokkit/resource/document.rb +59 -63
  9. metadata +3 -61
  10. data/spec/dokkit/application_spec.rb +0 -141
  11. data/spec/dokkit/cache/cache_spec.rb +0 -87
  12. data/spec/dokkit/dokkit_spec.rb +0 -20
  13. data/spec/dokkit/environment/basic_spec.rb +0 -138
  14. data/spec/dokkit/environment/helpers/extmap_spec.rb +0 -52
  15. data/spec/dokkit/environment/helpers/fileselection_spec.rb +0 -80
  16. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_1.ext_1 +0 -0
  17. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_2 +0 -0
  18. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_3.ext_3 +0 -0
  19. data/spec/dokkit/environment/test_data/doc/data/data +0 -0
  20. data/spec/dokkit/environment/test_data/doc/pages/document_1 +0 -0
  21. data/spec/dokkit/environment/test_data/doc/pages/document_1.yaml +0 -3
  22. data/spec/dokkit/environment/test_data/doc/pages/document_2 +0 -0
  23. data/spec/dokkit/environment/test_data/doc/pages/subdir/document_1 +0 -0
  24. data/spec/dokkit/factory/factory_spec.rb +0 -69
  25. data/spec/dokkit/filters/deplate_spec.rb +0 -47
  26. data/spec/dokkit/filters/erb_spec.rb +0 -26
  27. data/spec/dokkit/filters/maruku_spec.rb +0 -28
  28. data/spec/dokkit/filters/nil_spec.rb +0 -29
  29. data/spec/dokkit/filters/tidy_spec.rb +0 -48
  30. data/spec/dokkit/hash_spec.rb +0 -89
  31. data/spec/dokkit/logging/logger_spec.rb +0 -138
  32. data/spec/dokkit/logging/observers/console_spec.rb +0 -68
  33. data/spec/dokkit/resource/data_spec.rb +0 -32
  34. data/spec/dokkit/resource/document_spec.rb +0 -523
  35. data/spec/dokkit/resource/extensions/html_spec.rb +0 -35
  36. data/spec/dokkit/resource/extensions/url_spec.rb +0 -29
  37. data/spec/dokkit/resource/filenamehelper_spec.rb +0 -33
  38. data/spec/dokkit/resource/test_data/doc/configs/config_1.yaml +0 -3
  39. data/spec/dokkit/resource/test_data/doc/configs/config_2.yaml +0 -3
  40. data/spec/dokkit/resource/test_data/doc/configs/required.yaml +0 -3
  41. data/spec/dokkit/resource/test_data/doc/configs/subdir/document.yaml +0 -3
  42. data/spec/dokkit/resource/test_data/doc/layouts/container.html +0 -6
  43. data/spec/dokkit/resource/test_data/doc/layouts/layout.html +0 -6
  44. data/spec/dokkit/resource/test_data/doc/layouts/layout.latex +0 -8
  45. data/spec/dokkit/resource/test_data/doc/layouts/nested/nested.html +0 -4
  46. data/spec/dokkit/resource/test_data/doc/layouts/subdir/document.html +0 -6
  47. data/spec/dokkit/resource/test_data/doc/layouts/subdir/document.latex +0 -8
  48. data/spec/dokkit/resource/test_data/doc/pages/COMMON.yaml +0 -4
  49. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_config.ext +0 -7
  50. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_errors.ext +0 -12
  51. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_targets.ext +0 -19
  52. data/spec/dokkit/resource/test_data/doc/pages/document_with_nested_layout.ext +0 -13
  53. data/spec/dokkit/resource/test_data/doc/pages/document_with_nil_target.ext +0 -5
  54. data/spec/dokkit/resource/test_data/doc/pages/document_with_not_defined_target.ext +0 -6
  55. data/spec/dokkit/resource/test_data/doc/pages/document_with_one_target.ext +0 -8
  56. data/spec/dokkit/resource/test_data/doc/pages/document_with_postfilter.ext +0 -10
  57. data/spec/dokkit/resource/test_data/doc/pages/subdir/COMMON.yaml +0 -3
  58. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.ext +0 -8
  59. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.yaml +0 -5
  60. data/spec/dokkit/tasklib/clean_spec.rb +0 -75
  61. data/spec/dokkit/tasklib/render_spec.rb +0 -125
  62. data/spec/dokkit/tasklib/test_data/doc/data/data_1 +0 -0
  63. data/spec/dokkit/tasklib/test_data/doc/pages/document_1 +0 -0
  64. data/spec/dokkit/tasklib/test_data/doc/pages/document_2 +0 -0
  65. data/spec/dokkit/test_data/dokkit/models/model1/doc/pages/model1 +0 -0
  66. data/spec/dokkit/test_data/dokkit/models/model2/doc/pages/model2 +0 -0
  67. data/spec/spec.opts +0 -4
  68. data/spec/spec_helper.rb +0 -139
@@ -1,35 +0,0 @@
1
- #
2
- # File 'html_spec.rb' created on 21 giu 2008 at 19:57:13.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c)2006-2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
-
8
- require 'rubygems'
9
- require 'spec'
10
- require 'dokkit'
11
-
12
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../../../lib')))
13
- require 'dokkit/resource/extensions/html'
14
-
15
-
16
- module Dokkit
17
- module Resource
18
- module Extension
19
-
20
- describe HTML, '#link_to' do
21
- before do
22
- @document = mock('document',
23
- :configuration => { :document_dir => 'doc/pages' },
24
- :source_fn => 'doc/pages/subdir/document.ext'
25
- )
26
- @document.extend Dokkit::Resource::Extension::HTML
27
- end
28
- it 'should produce a link with the given href, name and class' do
29
- @document.link_to("Link to page", :href => '/page.html', :class => 'class').should == "<a href=\"../page.html\" class=\"class\">Link to page</a>"
30
- end
31
- end
32
-
33
- end
34
- end
35
- end
@@ -1,29 +0,0 @@
1
- #
2
- # File 'url_spec.rb' created on 09 mag 2008 at 19:17:03.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c)2006-2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
-
8
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../../../lib')))
9
-
10
- require 'rubygems'
11
- require 'spec'
12
- require 'dokkit'
13
- require 'dokkit/resource/extensions/url'
14
- require 'spec/spec_helper.rb'
15
-
16
- describe Dokkit::Resource::Extension::Url do
17
- before do
18
- @document = mock('document',
19
- :configuration => { :document_dir => 'doc/pages' },
20
- :source_fn => 'doc/pages/subdir/document.ext'
21
- )
22
- @document.extend Dokkit::Resource::Extension::Url
23
- end
24
- it 'should resolve the absolute path name' do
25
- @document.relative('/images/image.img').should == '../images/image.img'
26
- end
27
- end
28
-
29
-
@@ -1,33 +0,0 @@
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) 2006, 2007, 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/resource/filenamehelper'
19
- require 'spec/spec_helper.rb'
20
-
21
- describe Dokkit::Resource::FilenameHelper do
22
- before do
23
- @resource = mock('resource')
24
- @resource.extend Dokkit::Resource::FilenameHelper
25
- end
26
- it 'should replace source path with the new path' do
27
- @resource.filename_helper('doc/pages/resource', 'doc/pages', 'output').should == 'output/resource'
28
- end
29
- it 'should add new extension to the source extension' do
30
- @resource.filename_helper('doc/pages/resource.ext', 'doc/pages', 'output', '.html').should == 'output/resource.ext.html'
31
- end
32
- end
33
-
@@ -1,3 +0,0 @@
1
- ---
2
- key: value
3
- ---
@@ -1,3 +0,0 @@
1
- ---
2
- key: value
3
- ---
@@ -1,3 +0,0 @@
1
- ---
2
- key_in_required: value in required
3
-
@@ -1,3 +0,0 @@
1
- ---
2
- key_in_configs: value in configs/
3
-
@@ -1,6 +0,0 @@
1
- <html>
2
- <body>
3
- <%= @content_for_layout %>
4
- </body>
5
- </html>
6
-
@@ -1,6 +0,0 @@
1
- <html>
2
- <body>
3
- <%= @content_for_layout %>
4
- </body>
5
- </html>
6
-
@@ -1,8 +0,0 @@
1
- \documentclass[a4paper,12pt]{article}
2
- \usepackage[utf8]{inputenc}
3
-
4
- \begin{document}
5
-
6
- <%= @content_for_layout %>
7
-
8
- \end{document}
@@ -1,4 +0,0 @@
1
- <div id="nested">
2
- <%= @content_for_layout %>
3
- </div>
4
-
@@ -1,6 +0,0 @@
1
- <html>
2
- <body>
3
- <%= @content_for_layout %>
4
- </body>
5
- </html>
6
-
@@ -1,8 +0,0 @@
1
- \documentclass[a4paper,12pt]{article}
2
- \usepackage[utf8]{inputenc}
3
-
4
- \begin{document}
5
-
6
- <%= @content_for_layout %>
7
-
8
- \end{document}
@@ -1,4 +0,0 @@
1
- ---
2
- layout: subdir/document
3
- key_in_common: key in common
4
-
@@ -1,7 +0,0 @@
1
- ---
2
- config:
3
- - config_1
4
- - config_2
5
- ---
6
-
7
- This is a document with many configuration files.
@@ -1,12 +0,0 @@
1
- ---
2
- layout: notexists
3
- targets:
4
- - html
5
- - notexists
6
- - custom:
7
- filters:
8
- - notexists
9
- ---
10
-
11
- This a document that presents configuration errors and inconsistencies.
12
-
@@ -1,19 +0,0 @@
1
- ---
2
- layout: layout
3
- format:
4
- - latex
5
- - text
6
- - custom:
7
- filter:
8
- - maruku-html
9
- ext: html
10
- ---
11
-
12
- This document can be rendered in the format below:
13
-
14
- * html
15
- * latex
16
- * text
17
- * custom
18
-
19
- The custom format use maruku filter for html rendering.
@@ -1,13 +0,0 @@
1
- ---
2
- layout:
3
- - clear
4
- - nested/nested
5
- - container
6
- ---
7
-
8
- This is a document thai uses a nested layout inside a layout that acts as container.
9
- Layouts are rendered in the same order of the array values above. That is:
10
-
11
- result in result in
12
- document_with_nested_layout ========> doc/layouts/nested/nested.html ========> doc/layouts/container.html
13
-
@@ -1,5 +0,0 @@
1
- ---
2
- format:
3
- ---
4
-
5
- Document with output format defined.
@@ -1,6 +0,0 @@
1
- ---
2
- format:
3
- - blah:
4
- ---
5
-
6
- Document with not defined format.
@@ -1,8 +0,0 @@
1
- ---
2
- format:
3
- - text
4
- ---
5
-
6
- Document with text target.
7
-
8
-
@@ -1,10 +0,0 @@
1
- ---
2
- format:
3
- - html:
4
- filter:
5
- - erb
6
- postfilter:
7
- - erb
8
- ---
9
-
10
- Document body.
@@ -1,3 +0,0 @@
1
- ---
2
- key_in_common_in_subdir: key in common in subdir
3
-
@@ -1,8 +0,0 @@
1
- ---
2
- key_in_header: value in header
3
- ---
4
-
5
- * Title for document
6
-
7
- Body of the document
8
-
@@ -1,5 +0,0 @@
1
- ---
2
- key: value in document.yaml
3
- config: required
4
- layout: subdir/document
5
-
@@ -1,75 +0,0 @@
1
- #
2
- # File 'clean_spec.rb' created on 14 apr 2008 at 16:00:41.
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/clean_spec.rb
10
- #
11
-
12
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../../../lib')))
13
-
14
- require 'rubygems'
15
- require 'rake'
16
- require 'spec'
17
- require 'dokkit/tasklib/clean'
18
- require 'spec/spec_helper.rb'
19
-
20
- describe Dokkit::TaskLib::Clean do
21
- include SpecHelper::Logger
22
- before(:all) do
23
- @initial_dir = Dir.pwd
24
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
25
- end
26
- after(:all) do
27
- Dir.chdir(@initial_dir)
28
- end
29
- before do
30
- @logger = logger
31
- @rake = Rake.application
32
- @clean = Dokkit::TaskLib::Clean.new(@logger, { :output_dir => 'output', :cache_dir => '.cache'} )
33
- end
34
- after do
35
- Rake.application.clear
36
- end
37
- it 'should define a clean:output task' do
38
- @rake.tasks.should include(task('clean:output'))
39
- end
40
- it 'should define a clean:cache task' do
41
- @rake.tasks.should include(task('clean:cache'))
42
- end
43
- it 'should define a clean:all task' do
44
- @rake.tasks.should include(task('clean:all'))
45
- end
46
- describe ' when clean:output is invoked' do
47
- before do
48
- mkdir 'output'
49
- end
50
- after do
51
- rm_rf 'output'
52
- end
53
- it 'should remove output directory' do
54
- @logger.stub!(:info)
55
- @rake['clean:output'].execute({ })
56
- File.exists?('output').should be_false
57
- end
58
- end
59
- describe ' when clean:cache is invoked' do
60
- before do
61
- mkdir '.cache'
62
- end
63
- after do
64
- rm_rf '.cache'
65
- end
66
- it 'should remove cache directory' do
67
- @logger.stub!(:info)
68
- @rake['clean:cache'].execute({ })
69
- File.exists?('.cache').should be_false
70
- end
71
- end
72
- end
73
-
74
-
75
-
@@ -1,125 +0,0 @@
1
- #
2
- # File 'rendertask_spec.rb' created on 18 feb 2008 at 19:55:16.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c)2006, 2007, 2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
- # To execute this spec run:
8
- #
9
- # spec spec/render_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/tasklib/render'
17
- require 'spec/spec_helper.rb'
18
-
19
- describe Dokkit::TaskLib::Render do
20
- include SpecHelper::Resource, SpecHelper::Logger
21
- before(:all) do
22
- @initial_dir = Dir.pwd
23
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
24
- end
25
- after(:all) do
26
- Dir.chdir(@initial_dir)
27
- end
28
- before do
29
- @rake = Rake.application
30
- @document_1 = document_1
31
- @document_2 = document_2
32
- @data_1 = data_1
33
- @resource_factory = resource_factory
34
- @logger = logger
35
- @render = Dokkit::TaskLib::Render.new(@logger, @resource_factory, ['doc/pages/document_1', 'doc/pages/document_2'], ['doc/data/data_1'])
36
- end
37
- after do
38
- Rake.application.clear
39
- end
40
- it 'should define a render:doc task' do
41
- @rake['render:doc'].should
42
- end
43
- it 'should define a render:data task' do
44
- @rake['render:data'].should
45
- end
46
- it 'should define a render:all task' do
47
- @rake['render:all'].prerequisites.should == ['render:doc', 'render:data']
48
- end
49
- describe ' when render:doc invoked' do
50
- before do
51
- @logger.stub!(:info)
52
- @resource_factory.stub!(:get).and_return(@document_1, @document_2)
53
- end
54
- before do
55
- @rake['render:doc'].execute({ })
56
- end
57
- after do
58
- rm_rf 'output'
59
- end
60
- it 'should create the output directory' do
61
- File.exists?('output').should be_true
62
- end
63
- it 'should create document_1.html' do
64
- File.exists?('document_1.html')
65
- end
66
- it 'should create document_2.html' do
67
- File.exists?('document_2.html')
68
- end
69
- it 'should create document_2.text' do
70
- File.exists?('document_2.html')
71
- end
72
- end
73
- describe ' when render:data invoked' do
74
- before do
75
- @logger.stub!(:info)
76
- @resource_factory.stub!(:get).and_return(@data_1)
77
- end
78
- before do
79
- @rake['render:data'].execute({ })
80
- end
81
- after do
82
- rm_rf 'output'
83
- end
84
- it 'should create the output directory' do
85
- File.exists?('output').should be_true
86
- end
87
- it 'should copy data_1' do
88
- File.exists?('data_1')
89
- end
90
- end
91
- describe ' when doc/data/data_1 has been changed' do
92
- before do
93
- @logger.stub!(:info)
94
- @resource_factory.stub!(:get).and_return(@data_1)
95
- @rake['render:data'].execute({ })
96
- end
97
- after do
98
- rm_rf 'output'
99
- end
100
- it 'should re-render output/data_1' do
101
- File.utime(0, Time.now, data_path('data_1'))
102
- @logger.should_receive(:info).with(/copy/i)
103
- @rake['render:data'].execute({ })
104
- end
105
- end
106
- describe ' when doc/pages/document_1 has been changed' do
107
- before do
108
- @logger.stub!(:info)
109
- @resource_factory.stub!(:get).and_return(@document_1)
110
- @rake['render:doc'].execute({ })
111
- end
112
- after do
113
- rm_rf 'output'
114
- end
115
- it 'should re-render output/document_1' do
116
- File.utime(0, Time.now + 2, document_path('document_1'))
117
- # FIXME: logger should receive *exactly* 2 times :info message
118
- # but actually it receives four.. maybe there is some issue with
119
- # Rake::Task#execute .. to investigate ..
120
- @logger.should_receive(:info).at_least(2).with(/render/i)
121
- @rake['render:doc'].execute({ })
122
- end
123
- end
124
- end
125
-