nanoc3 3.2.4 → 3.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.
Files changed (211) hide show
  1. metadata +14 -313
  2. data/.gemtest +0 -0
  3. data/ChangeLog +0 -3
  4. data/Gemfile +0 -29
  5. data/LICENSE +0 -19
  6. data/NEWS.md +0 -449
  7. data/README.md +0 -108
  8. data/Rakefile +0 -14
  9. data/bin/nanoc3 +0 -12
  10. data/doc/yardoc_templates/default/layout/html/footer.erb +0 -10
  11. data/lib/nanoc3.rb +0 -28
  12. data/lib/nanoc3/base.rb +0 -49
  13. data/lib/nanoc3/base/compilation/checksum_store.rb +0 -57
  14. data/lib/nanoc3/base/compilation/compiled_content_cache.rb +0 -62
  15. data/lib/nanoc3/base/compilation/compiler.rb +0 -455
  16. data/lib/nanoc3/base/compilation/compiler_dsl.rb +0 -214
  17. data/lib/nanoc3/base/compilation/dependency_tracker.rb +0 -196
  18. data/lib/nanoc3/base/compilation/filter.rb +0 -165
  19. data/lib/nanoc3/base/compilation/item_rep_proxy.rb +0 -102
  20. data/lib/nanoc3/base/compilation/item_rep_recorder_proxy.rb +0 -88
  21. data/lib/nanoc3/base/compilation/outdatedness_checker.rb +0 -223
  22. data/lib/nanoc3/base/compilation/outdatedness_reasons.rb +0 -46
  23. data/lib/nanoc3/base/compilation/rule.rb +0 -73
  24. data/lib/nanoc3/base/compilation/rule_context.rb +0 -84
  25. data/lib/nanoc3/base/compilation/rule_memory_calculator.rb +0 -40
  26. data/lib/nanoc3/base/compilation/rule_memory_store.rb +0 -53
  27. data/lib/nanoc3/base/compilation/rules_collection.rb +0 -231
  28. data/lib/nanoc3/base/context.rb +0 -47
  29. data/lib/nanoc3/base/core_ext.rb +0 -6
  30. data/lib/nanoc3/base/core_ext/array.rb +0 -62
  31. data/lib/nanoc3/base/core_ext/hash.rb +0 -63
  32. data/lib/nanoc3/base/core_ext/pathname.rb +0 -26
  33. data/lib/nanoc3/base/core_ext/string.rb +0 -46
  34. data/lib/nanoc3/base/directed_graph.rb +0 -275
  35. data/lib/nanoc3/base/errors.rb +0 -174
  36. data/lib/nanoc3/base/memoization.rb +0 -67
  37. data/lib/nanoc3/base/notification_center.rb +0 -84
  38. data/lib/nanoc3/base/ordered_hash.rb +0 -200
  39. data/lib/nanoc3/base/plugin_registry.rb +0 -165
  40. data/lib/nanoc3/base/result_data/item_rep.rb +0 -488
  41. data/lib/nanoc3/base/source_data/code_snippet.rb +0 -58
  42. data/lib/nanoc3/base/source_data/configuration.rb +0 -24
  43. data/lib/nanoc3/base/source_data/data_source.rb +0 -234
  44. data/lib/nanoc3/base/source_data/item.rb +0 -301
  45. data/lib/nanoc3/base/source_data/layout.rb +0 -130
  46. data/lib/nanoc3/base/source_data/site.rb +0 -361
  47. data/lib/nanoc3/base/store.rb +0 -135
  48. data/lib/nanoc3/cli.rb +0 -133
  49. data/lib/nanoc3/cli/command.rb +0 -139
  50. data/lib/nanoc3/cli/commands/autocompile.rb +0 -60
  51. data/lib/nanoc3/cli/commands/compile.rb +0 -280
  52. data/lib/nanoc3/cli/commands/create_item.rb +0 -62
  53. data/lib/nanoc3/cli/commands/create_layout.rb +0 -75
  54. data/lib/nanoc3/cli/commands/create_site.rb +0 -410
  55. data/lib/nanoc3/cli/commands/debug.rb +0 -119
  56. data/lib/nanoc3/cli/commands/info.rb +0 -98
  57. data/lib/nanoc3/cli/commands/nanoc.rb +0 -37
  58. data/lib/nanoc3/cli/commands/update.rb +0 -72
  59. data/lib/nanoc3/cli/commands/view.rb +0 -84
  60. data/lib/nanoc3/cli/commands/watch.rb +0 -125
  61. data/lib/nanoc3/cli/error_handler.rb +0 -193
  62. data/lib/nanoc3/cli/logger.rb +0 -91
  63. data/lib/nanoc3/data_sources.rb +0 -29
  64. data/lib/nanoc3/data_sources/deprecated/delicious.rb +0 -42
  65. data/lib/nanoc3/data_sources/deprecated/last_fm.rb +0 -87
  66. data/lib/nanoc3/data_sources/deprecated/twitter.rb +0 -38
  67. data/lib/nanoc3/data_sources/filesystem.rb +0 -299
  68. data/lib/nanoc3/data_sources/filesystem_unified.rb +0 -116
  69. data/lib/nanoc3/data_sources/filesystem_verbose.rb +0 -86
  70. data/lib/nanoc3/extra.rb +0 -22
  71. data/lib/nanoc3/extra/auto_compiler.rb +0 -103
  72. data/lib/nanoc3/extra/chick.rb +0 -125
  73. data/lib/nanoc3/extra/core_ext.rb +0 -4
  74. data/lib/nanoc3/extra/core_ext/enumerable.rb +0 -33
  75. data/lib/nanoc3/extra/core_ext/time.rb +0 -19
  76. data/lib/nanoc3/extra/deployers.rb +0 -11
  77. data/lib/nanoc3/extra/deployers/rsync.rb +0 -114
  78. data/lib/nanoc3/extra/file_proxy.rb +0 -40
  79. data/lib/nanoc3/extra/validators.rb +0 -12
  80. data/lib/nanoc3/extra/validators/links.rb +0 -264
  81. data/lib/nanoc3/extra/validators/w3c.rb +0 -95
  82. data/lib/nanoc3/extra/vcs.rb +0 -66
  83. data/lib/nanoc3/extra/vcses.rb +0 -17
  84. data/lib/nanoc3/extra/vcses/bazaar.rb +0 -25
  85. data/lib/nanoc3/extra/vcses/dummy.rb +0 -24
  86. data/lib/nanoc3/extra/vcses/git.rb +0 -25
  87. data/lib/nanoc3/extra/vcses/mercurial.rb +0 -25
  88. data/lib/nanoc3/extra/vcses/subversion.rb +0 -25
  89. data/lib/nanoc3/filters.rb +0 -53
  90. data/lib/nanoc3/filters/asciidoc.rb +0 -38
  91. data/lib/nanoc3/filters/bluecloth.rb +0 -19
  92. data/lib/nanoc3/filters/coderay.rb +0 -21
  93. data/lib/nanoc3/filters/colorize_syntax.rb +0 -261
  94. data/lib/nanoc3/filters/erb.rb +0 -35
  95. data/lib/nanoc3/filters/erubis.rb +0 -27
  96. data/lib/nanoc3/filters/haml.rb +0 -27
  97. data/lib/nanoc3/filters/kramdown.rb +0 -20
  98. data/lib/nanoc3/filters/less.rb +0 -53
  99. data/lib/nanoc3/filters/markaby.rb +0 -20
  100. data/lib/nanoc3/filters/maruku.rb +0 -20
  101. data/lib/nanoc3/filters/mustache.rb +0 -24
  102. data/lib/nanoc3/filters/rainpress.rb +0 -19
  103. data/lib/nanoc3/filters/rdiscount.rb +0 -22
  104. data/lib/nanoc3/filters/rdoc.rb +0 -33
  105. data/lib/nanoc3/filters/redcarpet.rb +0 -27
  106. data/lib/nanoc3/filters/redcloth.rb +0 -47
  107. data/lib/nanoc3/filters/relativize_paths.rb +0 -45
  108. data/lib/nanoc3/filters/rubypants.rb +0 -20
  109. data/lib/nanoc3/filters/sass.rb +0 -66
  110. data/lib/nanoc3/filters/slim.rb +0 -25
  111. data/lib/nanoc3/filters/typogruby.rb +0 -23
  112. data/lib/nanoc3/filters/uglify_js.rb +0 -42
  113. data/lib/nanoc3/helpers.rb +0 -16
  114. data/lib/nanoc3/helpers/blogging.rb +0 -319
  115. data/lib/nanoc3/helpers/breadcrumbs.rb +0 -40
  116. data/lib/nanoc3/helpers/capturing.rb +0 -138
  117. data/lib/nanoc3/helpers/filtering.rb +0 -50
  118. data/lib/nanoc3/helpers/html_escape.rb +0 -55
  119. data/lib/nanoc3/helpers/link_to.rb +0 -151
  120. data/lib/nanoc3/helpers/rendering.rb +0 -140
  121. data/lib/nanoc3/helpers/tagging.rb +0 -71
  122. data/lib/nanoc3/helpers/text.rb +0 -44
  123. data/lib/nanoc3/helpers/xml_sitemap.rb +0 -76
  124. data/lib/nanoc3/tasks.rb +0 -10
  125. data/lib/nanoc3/tasks/clean.rake +0 -16
  126. data/lib/nanoc3/tasks/clean.rb +0 -29
  127. data/lib/nanoc3/tasks/deploy/rsync.rake +0 -14
  128. data/lib/nanoc3/tasks/validate.rake +0 -92
  129. data/nanoc3.gemspec +0 -49
  130. data/tasks/doc.rake +0 -16
  131. data/tasks/test.rake +0 -44
  132. data/test/base/core_ext/array_spec.rb +0 -73
  133. data/test/base/core_ext/hash_spec.rb +0 -98
  134. data/test/base/core_ext/pathname_spec.rb +0 -27
  135. data/test/base/core_ext/string_spec.rb +0 -37
  136. data/test/base/test_checksum_store.rb +0 -35
  137. data/test/base/test_code_snippet.rb +0 -31
  138. data/test/base/test_compiler.rb +0 -316
  139. data/test/base/test_compiler_dsl.rb +0 -161
  140. data/test/base/test_context.rb +0 -31
  141. data/test/base/test_data_source.rb +0 -46
  142. data/test/base/test_dependency_tracker.rb +0 -262
  143. data/test/base/test_directed_graph.rb +0 -283
  144. data/test/base/test_filter.rb +0 -83
  145. data/test/base/test_item.rb +0 -179
  146. data/test/base/test_item_rep.rb +0 -553
  147. data/test/base/test_layout.rb +0 -59
  148. data/test/base/test_memoization.rb +0 -90
  149. data/test/base/test_notification_center.rb +0 -34
  150. data/test/base/test_outdatedness_checker.rb +0 -394
  151. data/test/base/test_plugin.rb +0 -30
  152. data/test/base/test_rule.rb +0 -19
  153. data/test/base/test_rule_context.rb +0 -65
  154. data/test/base/test_site.rb +0 -190
  155. data/test/cli/commands/test_compile.rb +0 -33
  156. data/test/cli/commands/test_create_item.rb +0 -14
  157. data/test/cli/commands/test_create_layout.rb +0 -28
  158. data/test/cli/commands/test_create_site.rb +0 -24
  159. data/test/cli/commands/test_help.rb +0 -12
  160. data/test/cli/commands/test_info.rb +0 -11
  161. data/test/cli/commands/test_update.rb +0 -10
  162. data/test/cli/test_cli.rb +0 -102
  163. data/test/cli/test_error_handler.rb +0 -29
  164. data/test/cli/test_logger.rb +0 -10
  165. data/test/data_sources/test_filesystem.rb +0 -433
  166. data/test/data_sources/test_filesystem_unified.rb +0 -536
  167. data/test/data_sources/test_filesystem_verbose.rb +0 -357
  168. data/test/extra/core_ext/test_enumerable.rb +0 -30
  169. data/test/extra/core_ext/test_time.rb +0 -15
  170. data/test/extra/deployers/test_rsync.rb +0 -232
  171. data/test/extra/test_auto_compiler.rb +0 -417
  172. data/test/extra/test_file_proxy.rb +0 -19
  173. data/test/extra/test_vcs.rb +0 -22
  174. data/test/extra/validators/test_links.rb +0 -51
  175. data/test/extra/validators/test_w3c.rb +0 -47
  176. data/test/filters/test_asciidoc.rb +0 -22
  177. data/test/filters/test_bluecloth.rb +0 -18
  178. data/test/filters/test_coderay.rb +0 -44
  179. data/test/filters/test_colorize_syntax.rb +0 -283
  180. data/test/filters/test_erb.rb +0 -99
  181. data/test/filters/test_erubis.rb +0 -70
  182. data/test/filters/test_haml.rb +0 -96
  183. data/test/filters/test_kramdown.rb +0 -18
  184. data/test/filters/test_less.rb +0 -113
  185. data/test/filters/test_markaby.rb +0 -24
  186. data/test/filters/test_maruku.rb +0 -18
  187. data/test/filters/test_mustache.rb +0 -25
  188. data/test/filters/test_rainpress.rb +0 -29
  189. data/test/filters/test_rdiscount.rb +0 -31
  190. data/test/filters/test_rdoc.rb +0 -18
  191. data/test/filters/test_redcarpet.rb +0 -63
  192. data/test/filters/test_redcloth.rb +0 -33
  193. data/test/filters/test_relativize_paths.rb +0 -332
  194. data/test/filters/test_rubypants.rb +0 -18
  195. data/test/filters/test_sass.rb +0 -229
  196. data/test/filters/test_slim.rb +0 -35
  197. data/test/filters/test_typogruby.rb +0 -21
  198. data/test/filters/test_uglify_js.rb +0 -30
  199. data/test/gem_loader.rb +0 -11
  200. data/test/helper.rb +0 -179
  201. data/test/helpers/test_blogging.rb +0 -754
  202. data/test/helpers/test_breadcrumbs.rb +0 -81
  203. data/test/helpers/test_capturing.rb +0 -41
  204. data/test/helpers/test_filtering.rb +0 -106
  205. data/test/helpers/test_html_escape.rb +0 -32
  206. data/test/helpers/test_link_to.rb +0 -249
  207. data/test/helpers/test_rendering.rb +0 -89
  208. data/test/helpers/test_tagging.rb +0 -87
  209. data/test/helpers/test_text.rb +0 -24
  210. data/test/helpers/test_xml_sitemap.rb +0 -103
  211. data/test/tasks/test_clean.rb +0 -67
@@ -1,357 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::DataSources::FilesystemVerboseTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def new_data_source(params=nil)
8
- # Mock site
9
- site = Nanoc3::Site.new({})
10
-
11
- # Create data source
12
- data_source = Nanoc3::DataSources::FilesystemVerbose.new(site, nil, nil, params)
13
-
14
- # Done
15
- data_source
16
- end
17
-
18
- def test_items
19
- # Create data source
20
- data_source = new_data_source
21
-
22
- # Create foo item
23
- FileUtils.mkdir_p('content/foo')
24
- File.open('content/foo/foo.yaml', 'w') do |io|
25
- io.write("---\n")
26
- io.write("title: Foo\n")
27
- end
28
- File.open('content/foo/foo.html', 'w') do |io|
29
- io.write('Lorem ipsum dolor sit amet...')
30
- end
31
-
32
- # Create bar item
33
- FileUtils.mkdir_p('content/bar')
34
- File.open('content/bar/bar.yaml', 'w') do |io|
35
- io.write("---\n")
36
- io.write("title: Bar\n")
37
- end
38
- File.open('content/bar/bar.xml', 'w') do |io|
39
- io.write("Lorem ipsum dolor sit amet...")
40
- end
41
-
42
- # Load items
43
- items = data_source.items
44
-
45
- # Check items
46
- assert_equal(2, items.size)
47
- assert(items.any? { |a|
48
- a[:title] == 'Foo' &&
49
- a[:extension] == 'html' &&
50
- a[:content_filename] == 'content/foo/foo.html' &&
51
- a[:meta_filename] == 'content/foo/foo.yaml'
52
- })
53
- assert(items.any? { |a|
54
- a[:title] == 'Bar' &&
55
- a[:extension] == 'xml' &&
56
- a[:content_filename] == 'content/bar/bar.xml' &&
57
- a[:meta_filename] == 'content/bar/bar.yaml'
58
- })
59
- end
60
-
61
- def test_items_with_period_in_name
62
- data_source = new_data_source(:allow_periods_in_identifiers => true)
63
-
64
- # Create foo.css
65
- FileUtils.mkdir_p('content/foo')
66
- File.open('content/foo/foo.yaml', 'w') do |io|
67
- io.write(YAML.dump({ 'title' => 'Foo' }))
68
- end
69
- File.open('content/foo/foo.css', 'w') do |io|
70
- io.write('body.foo {}')
71
- end
72
-
73
- # Create foo.bar.css
74
- FileUtils.mkdir_p('content/foo.bar')
75
- File.open('content/foo.bar/foo.bar.yaml', 'w') do |io|
76
- io.write(YAML.dump({ 'title' => 'Foo Bar' }))
77
- end
78
- File.open('content/foo.bar/foo.bar.css', 'w') do |io|
79
- io.write('body.foobar {}')
80
- end
81
-
82
- # Load
83
- items = data_source.items
84
-
85
- # Check
86
- assert_equal 2, items.size
87
- assert_equal '/foo/', items[0].identifier
88
- assert_equal 'Foo', items[0][:title]
89
- assert_equal 'content/foo/foo.css', items[0][:content_filename]
90
- assert_equal 'content/foo/foo.yaml', items[0][:meta_filename]
91
- assert_equal '/foo.bar/', items[1].identifier
92
- assert_equal 'Foo Bar', items[1][:title]
93
- assert_equal 'content/foo.bar/foo.bar.css', items[1][:content_filename]
94
- assert_equal 'content/foo.bar/foo.bar.yaml', items[1][:meta_filename]
95
- end
96
-
97
- def test_items_with_optional_meta_file
98
- # Create data source
99
- data_source = new_data_source
100
-
101
- # Create foo item
102
- FileUtils.mkdir_p('content/foo')
103
- File.open('content/foo/foo.html', 'w') do |io|
104
- io.write('Lorem ipsum dolor sit amet...')
105
- end
106
-
107
- # Create bar item
108
- FileUtils.mkdir_p('content/bar')
109
- File.open('content/bar/bar.yaml', 'w') do |io|
110
- io.write("---\n")
111
- io.write("title: Bar\n")
112
- end
113
-
114
- # Load items
115
- items = data_source.items
116
-
117
- # Check items
118
- assert_equal(2, items.size)
119
- assert(items.any? { |a|
120
- a[:title] == nil &&
121
- a[:extension] == 'html' &&
122
- a[:content_filename] == 'content/foo/foo.html' &&
123
- a[:meta_filename] == nil
124
- })
125
- assert(items.any? { |a|
126
- a[:title] == 'Bar' &&
127
- a[:extension] == nil &&
128
- a[:content_filename] == nil &&
129
- a[:meta_filename] == 'content/bar/bar.yaml'
130
- })
131
- end
132
-
133
- def test_layouts
134
- # Create data source
135
- data_source = new_data_source
136
-
137
- # Create layout
138
- FileUtils.mkdir_p('layouts/foo')
139
- File.open('layouts/foo/foo.yaml', 'w') do |io|
140
- io.write("---\n")
141
- io.write("filter: erb\n")
142
- end
143
- File.open('layouts/foo/foo.rhtml', 'w') do |io|
144
- io.write('Lorem ipsum dolor sit amet...')
145
- end
146
-
147
- # Load layouts
148
- layouts = data_source.layouts
149
-
150
- # Check layouts
151
- assert_equal(1, layouts.size)
152
- assert_equal('erb', layouts[0][:filter])
153
- assert_equal('rhtml', layouts[0][:extension])
154
- assert_equal('layouts/foo/foo.rhtml', layouts[0][:content_filename])
155
- assert_equal('layouts/foo/foo.yaml', layouts[0][:meta_filename])
156
- end
157
-
158
- def test_layouts_with_period_in_name_disallowing_periods_in_identifiers
159
- data_source = new_data_source
160
-
161
- # Create foo.html
162
- FileUtils.mkdir_p('layouts/foo')
163
- File.open('layouts/foo/foo.yaml', 'w') do |io|
164
- io.write(YAML.dump({ 'dog' => 'woof' }))
165
- end
166
- File.open('layouts/foo/foo.html', 'w') do |io|
167
- io.write('body.foo {}')
168
- end
169
-
170
- # Create bar.html.erb
171
- FileUtils.mkdir_p('layouts/bar')
172
- File.open('layouts/bar/bar.yaml', 'w') do |io|
173
- io.write(YAML.dump({ 'cat' => 'meow' }))
174
- end
175
- File.open('layouts/bar/bar.html.erb', 'w') do |io|
176
- io.write('body.foobar {}')
177
- end
178
-
179
- # Load
180
- layouts = data_source.layouts.sort_by { |i| i.identifier }
181
-
182
- # Check
183
- assert_equal 2, layouts.size
184
- assert_equal '/bar/', layouts[0].identifier
185
- assert_equal 'meow', layouts[0][:cat]
186
- assert_equal '/foo/', layouts[1].identifier
187
- assert_equal 'woof', layouts[1][:dog]
188
- end
189
-
190
- def test_layouts_with_period_in_name_allowing_periods_in_identifiers
191
- data_source = new_data_source(:allow_periods_in_identifiers => true)
192
-
193
- # Create foo.html
194
- FileUtils.mkdir_p('layouts/foo')
195
- File.open('layouts/foo/foo.yaml', 'w') do |io|
196
- io.write(YAML.dump({ 'dog' => 'woof' }))
197
- end
198
- File.open('layouts/foo/foo.html', 'w') do |io|
199
- io.write('body.foo {}')
200
- end
201
-
202
- # Create bar.html.erb
203
- FileUtils.mkdir_p('layouts/bar.xyz')
204
- File.open('layouts/bar.xyz/bar.xyz.yaml', 'w') do |io|
205
- io.write(YAML.dump({ 'cat' => 'meow' }))
206
- end
207
- File.open('layouts/bar.xyz/bar.xyz.html', 'w') do |io|
208
- io.write('body.foobar {}')
209
- end
210
-
211
- # Load
212
- layouts = data_source.layouts.sort_by { |i| i.identifier }
213
-
214
- # Check
215
- assert_equal 2, layouts.size
216
- assert_equal '/bar.xyz/', layouts[0].identifier
217
- assert_equal 'meow', layouts[0][:cat]
218
- assert_equal '/foo/', layouts[1].identifier
219
- assert_equal 'woof', layouts[1][:dog]
220
- end
221
-
222
- def test_create_item_at_root
223
- # Create item
224
- data_source = new_data_source
225
- data_source.create_item('content here', { :foo => 'bar' }, '/')
226
-
227
- # Check file existance
228
- assert File.directory?('content')
229
- assert File.file?('content/content.html')
230
- assert File.file?('content/content.yaml')
231
-
232
- # Check file content
233
- assert_equal 'content here', File.read('content/content.html')
234
- assert_match 'foo: bar', File.read('content/content.yaml')
235
- end
236
-
237
- def test_create_item_not_at_root
238
- # Create item
239
- data_source = new_data_source
240
- data_source.create_item('content here', { :foo => 'bar' }, '/moo/')
241
-
242
- # Check file existance
243
- assert File.directory?('content/moo')
244
- assert File.file?('content/moo/moo.html')
245
- assert File.file?('content/moo/moo.yaml')
246
-
247
- # Check file content
248
- assert_equal 'content here', File.read('content/moo/moo.html')
249
- assert_match 'foo: bar', File.read('content/moo/moo.yaml')
250
- end
251
-
252
- def test_create_layout
253
- # Create layout
254
- data_source = new_data_source
255
- data_source.create_layout('content here', { :foo => 'bar' }, '/moo/')
256
-
257
- # Check file existance
258
- assert File.directory?('layouts/moo')
259
- assert File.file?('layouts/moo/moo.html')
260
- assert File.file?('layouts/moo/moo.yaml')
261
-
262
- # Check file content
263
- assert_equal 'content here', File.read('layouts/moo/moo.html')
264
- assert_match 'foo: bar', File.read('layouts/moo/moo.yaml')
265
- end
266
-
267
- def test_load_binary_objects
268
- # Create data source
269
- data_source = new_data_source
270
-
271
- # Create sample files
272
- FileUtils.mkdir_p('foo')
273
- File.open('foo/stuff.dat', 'w') { |io| io.write("random binary data") }
274
-
275
- # Load
276
- items = data_source.send(:load_objects, 'foo', 'item', Nanoc3::Item)
277
-
278
- # Check
279
- assert_equal 1, items.size
280
- assert items[0].binary?
281
- assert_equal 'foo/stuff.dat', items[0].raw_filename
282
- assert_nil items[0].raw_content
283
- end
284
-
285
- def test_filename_for_with_single
286
- data_source = new_data_source
287
-
288
- FileUtils.mkdir_p('foo/bar')
289
- File.open('foo/bar.ext', 'w') { |io| io.write('o hai') }
290
- assert_equal 'foo/bar.ext', data_source.send(:filename_for, 'foo/bar', 'ext')
291
- end
292
-
293
- def test_filename_for_with_double
294
- data_source = new_data_source
295
-
296
- FileUtils.mkdir_p('foo/bar')
297
- File.open('foo/bar/bar.ext', 'w') { |io| io.write('o hai') }
298
- assert_equal 'foo/bar/bar.ext', data_source.send(:filename_for, 'foo/bar', 'ext')
299
- end
300
-
301
- def test_filename_for_with_index
302
- data_source = new_data_source
303
-
304
- FileUtils.mkdir_p('foo/bar')
305
- File.open('foo/bar/index.ext', 'w') { |io| io.write('o hai') }
306
- assert_equal 'foo/bar/index.ext', data_source.send(:filename_for, 'foo/bar', 'ext')
307
- end
308
-
309
- def test_filename_for_with_nil
310
- data_source = new_data_source
311
-
312
- assert_equal nil, data_source.send(:filename_for, 'foo/bar', nil)
313
- end
314
-
315
- def test_filename_for_with_single_and_empty_ext
316
- data_source = new_data_source
317
-
318
- FileUtils.mkdir_p('foo')
319
- File.open('foo/bar', 'w') { |io| io.write('o hai') }
320
- assert_equal 'foo/bar', data_source.send(:filename_for, 'foo/bar', '')
321
- end
322
-
323
- def test_filename_for_with_double_and_empty_ext
324
- data_source = new_data_source
325
-
326
- FileUtils.mkdir_p('foo/bar')
327
- File.open('foo/bar/bar', 'w') { |io| io.write('o hai') }
328
- assert_equal 'foo/bar/bar', data_source.send(:filename_for, 'foo/bar', '')
329
- end
330
-
331
- def test_filename_for_with_index_and_empty_ext
332
- data_source = new_data_source
333
-
334
- FileUtils.mkdir_p('foo/bar')
335
- File.open('foo/bar/index', 'w') { |io| io.write('o hai') }
336
- assert_equal 'foo/bar/index', data_source.send(:filename_for, 'foo/bar', '')
337
- end
338
-
339
- def test_compile_huge_site
340
- if_implemented do
341
- # Create data source
342
- data_source = new_data_source
343
-
344
- # Create a lot of items
345
- count = Process.getrlimit(Process::RLIMIT_NOFILE)[0] + 5
346
- count.times do |i|
347
- FileUtils.mkdir_p("content/#{i}")
348
- File.open("content/#{i}/#{i}.html", 'w') { |io| io << "This is item #{i}." }
349
- File.open("content/#{i}/#{i}.yaml", 'w') { |io| io << "title: Item #{i}" }
350
- end
351
-
352
- # Read all items
353
- data_source.items
354
- end
355
- end
356
-
357
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::ExtraCoreExtEnumerableTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- class MyCollection
8
-
9
- include Enumerable
10
-
11
- def initialize(array)
12
- @array = array
13
- end
14
-
15
- def each(&block)
16
- @array.each { |i| block.call(i) }
17
- end
18
-
19
- end
20
-
21
- def test_group_by
22
- input = MyCollection.new([ 'foo', 'bar', 'baz' ])
23
-
24
- output_expected = { ?f => [ 'foo' ], ?b => [ 'bar', 'baz' ] }
25
- output_actual = input.group_by { |i| i[0] }
26
-
27
- assert_equal output_expected, output_actual
28
- end
29
-
30
- end
@@ -1,15 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::ExtraCoreExtTimeTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def test_to_iso8601_date
8
- assert_equal('2008-05-19', Time.utc(2008, 5, 19, 14, 20, 0, 0).to_iso8601_date)
9
- end
10
-
11
- def test_to_iso8601_time
12
- assert_equal('2008-05-19T14:20:00Z', Time.utc(2008, 5, 19, 14, 20, 0, 0).to_iso8601_time)
13
- end
14
-
15
- end
@@ -1,232 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::Extra::Deployers::RsyncTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def test_new_without_site
8
- # Try creating site
9
- error = assert_raises(RuntimeError) do
10
- Nanoc3::Extra::Deployers::Rsync.new
11
- end
12
-
13
- # Check error message
14
- assert_equal 'No site configuration found', error.message
15
- end
16
-
17
- def test_run_without_general_deploy_config
18
- # Create config
19
- File.open('config.yaml', 'w') do |io|
20
- io.write "---\n"
21
- io.write "foo: bar\n"
22
- end
23
-
24
- # Create site
25
- rsync = Nanoc3::Extra::Deployers::Rsync.new
26
-
27
- # Try running
28
- error = assert_raises(RuntimeError) do
29
- rsync.run
30
- end
31
-
32
- # Check error message
33
- assert_equal 'No deploy configuration found', error.message
34
- end
35
-
36
- def test_run_without_special_deploy_config
37
- # Create config
38
- File.open('config.yaml', 'w') do |io|
39
- io.write "---\n"
40
- io.write "deploy:\n"
41
- io.write " blahblah:\n"
42
- io.write " stuff: more stuff\n"
43
- end
44
-
45
- # Create site
46
- rsync = Nanoc3::Extra::Deployers::Rsync.new
47
-
48
- # Try running
49
- error = assert_raises(RuntimeError) do
50
- rsync.run
51
- end
52
-
53
- # Check error message
54
- assert_equal 'No deploy configuration found for default', error.message
55
- end
56
-
57
- def test_run_without_special_deploy_config_with_custom_deploy_config
58
- # Create config
59
- File.open('config.yaml', 'w') do |io|
60
- io.write "---\n"
61
- io.write "deploy:\n"
62
- io.write " blahblah:\n"
63
- io.write " stuff: more stuff\n"
64
- end
65
-
66
- # Create site
67
- rsync = Nanoc3::Extra::Deployers::Rsync.new
68
-
69
- # Try running
70
- error = assert_raises(RuntimeError) do
71
- rsync.run(:config_name => 'potrzebie')
72
- end
73
-
74
- # Check error message
75
- assert_equal 'No deploy configuration found for potrzebie', error.message
76
- end
77
-
78
- def test_run_without_dst
79
- # Create config
80
- File.open('config.yaml', 'w') do |io|
81
- io.write "---\n"
82
- io.write "deploy:\n"
83
- io.write " default:\n"
84
- io.write " foo: bar\n"
85
- end
86
-
87
- # Create site
88
- rsync = Nanoc3::Extra::Deployers::Rsync.new
89
-
90
- # Try running
91
- error = assert_raises(RuntimeError) do
92
- rsync.run
93
- end
94
-
95
- # Check error message
96
- assert_equal 'No dst found in deployment configuration', error.message
97
- end
98
-
99
- def test_run_with_erroneous_dst
100
- # Create config
101
- File.open('config.yaml', 'w') do |io|
102
- io.write "---\n"
103
- io.write "deploy:\n"
104
- io.write " default:\n"
105
- io.write " dst: asdf/\n"
106
- end
107
-
108
- # Create site
109
- rsync = Nanoc3::Extra::Deployers::Rsync.new
110
-
111
- # Try running
112
- error = assert_raises(RuntimeError) do
113
- rsync.run
114
- end
115
-
116
- # Check error message
117
- assert_equal 'dst requires no trailing slash', error.message
118
- end
119
-
120
- def test_run_with_custom_deploy_config_string
121
- # Create config
122
- File.open('config.yaml', 'w') do |io|
123
- io.write "---\n"
124
- io.write "deploy:\n"
125
- io.write " foobar:\n"
126
- io.write " dst: asdf\n"
127
- end
128
-
129
- # Create site
130
- rsync = Nanoc3::Extra::Deployers::Rsync.new
131
-
132
- # Mock run_shell_cmd
133
- def rsync.run_shell_cmd(args)
134
- @shell_cms_args = args
135
- end
136
-
137
- # Run
138
- rsync.run(:config_name => 'foobar')
139
-
140
- # Check args
141
- default_options = Nanoc3::Extra::Deployers::Rsync::DEFAULT_OPTIONS
142
- assert_equal(
143
- [ 'rsync', default_options, File.expand_path('output') + '/', 'asdf' ].flatten,
144
- rsync.instance_eval { @shell_cms_args }
145
- )
146
- end
147
-
148
- def test_run_with_custom_deploy_config_symbol
149
- # Create config
150
- File.open('config.yaml', 'w') do |io|
151
- io.write "---\n"
152
- io.write "deploy:\n"
153
- io.write " foobar:\n"
154
- io.write " dst: asdf\n"
155
- end
156
-
157
- # Create site
158
- rsync = Nanoc3::Extra::Deployers::Rsync.new
159
-
160
- # Mock run_shell_cmd
161
- def rsync.run_shell_cmd(args)
162
- @shell_cms_args = args
163
- end
164
-
165
- # Run
166
- rsync.run(:config_name => :foobar)
167
-
168
- # Check args
169
- default_options = Nanoc3::Extra::Deployers::Rsync::DEFAULT_OPTIONS
170
- assert_equal(
171
- [ 'rsync', default_options, File.expand_path('output') + '/', 'asdf' ].flatten,
172
- rsync.instance_eval { @shell_cms_args }
173
- )
174
- end
175
-
176
- def test_run_everything_okay
177
- # Create config
178
- File.open('config.yaml', 'w') do |io|
179
- io.write "---\n"
180
- io.write "deploy:\n"
181
- io.write " default:\n"
182
- io.write " dst: asdf\n"
183
- end
184
-
185
- # Create site
186
- rsync = Nanoc3::Extra::Deployers::Rsync.new
187
-
188
- # Mock run_shell_cmd
189
- def rsync.run_shell_cmd(args)
190
- @shell_cms_args = args
191
- end
192
-
193
- # Run
194
- rsync.run
195
-
196
- # Check args
197
- default_options = Nanoc3::Extra::Deployers::Rsync::DEFAULT_OPTIONS
198
- assert_equal(
199
- [ 'rsync', default_options, File.expand_path('output') + '/', 'asdf' ].flatten,
200
- rsync.instance_eval { @shell_cms_args }
201
- )
202
- end
203
-
204
- def test_run_everything_okay_dry
205
- # Create config
206
- File.open('config.yaml', 'w') do |io|
207
- io.write "---\n"
208
- io.write "deploy:\n"
209
- io.write " default:\n"
210
- io.write " dst: asdf\n"
211
- end
212
-
213
- # Create site
214
- rsync = Nanoc3::Extra::Deployers::Rsync.new
215
-
216
- # Mock run_shell_cmd
217
- def rsync.run_shell_cmd(args)
218
- @shell_cms_args = args
219
- end
220
-
221
- # Run
222
- rsync.run(:dry_run => true)
223
-
224
- # Check args
225
- default_options = Nanoc3::Extra::Deployers::Rsync::DEFAULT_OPTIONS
226
- assert_equal(
227
- [ 'echo', 'rsync', default_options, File.expand_path('output') + '/', 'asdf' ].flatten,
228
- rsync.instance_eval { @shell_cms_args }
229
- )
230
- end
231
-
232
- end