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,283 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::DirectedGraphTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def test_direct_predecessors
8
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
9
- graph.add_edge(1, 2)
10
- graph.add_edge(2, 3)
11
-
12
- assert_equal [], graph.direct_predecessors_of(1)
13
- assert_equal [ 1 ], graph.direct_predecessors_of(2)
14
- assert_equal [ 2 ], graph.direct_predecessors_of(3)
15
- end
16
-
17
- def test_predecessors
18
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
19
- graph.add_edge(1, 2)
20
- graph.add_edge(2, 3)
21
-
22
- assert_equal [], graph.predecessors_of(1).sort
23
- assert_equal [ 1 ], graph.predecessors_of(2).sort
24
- assert_equal [ 1, 2 ], graph.predecessors_of(3).sort
25
- end
26
-
27
- def test_direct_successors
28
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
29
- graph.add_edge(1, 2)
30
- graph.add_edge(2, 3)
31
-
32
- assert_equal [ 2 ], graph.direct_successors_of(1)
33
- assert_equal [ 3 ], graph.direct_successors_of(2)
34
- assert_equal [], graph.direct_successors_of(3)
35
- end
36
-
37
- def test_successors
38
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
39
- graph.add_edge(1, 2)
40
- graph.add_edge(2, 3)
41
-
42
- assert_equal [ 2, 3 ], graph.successors_of(1).sort
43
- assert_equal [ 3 ], graph.successors_of(2).sort
44
- assert_equal [], graph.successors_of(3).sort
45
- end
46
-
47
- def test_edges
48
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
49
- graph.add_edge(1, 2)
50
- graph.add_edge(2, 3)
51
-
52
- assert_equal [ [ 0, 1 ], [ 1, 2 ] ], graph.edges.sort
53
- end
54
-
55
- def test_edges_with_new_vertices
56
- graph = Nanoc3::DirectedGraph.new([ 1 ])
57
- graph.add_edge(1, 2)
58
- graph.add_edge(3, 2)
59
-
60
- assert_equal [ [ 0, 1 ], [ 2, 1 ] ], graph.edges.sort
61
- end
62
-
63
- def test_add_edge
64
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
65
-
66
- assert_equal [], graph.successors_of(1)
67
- assert_equal [], graph.predecessors_of(2)
68
-
69
- graph.add_edge(1, 2)
70
-
71
- assert_equal [ 2 ], graph.successors_of(1)
72
- assert_equal [ 1 ], graph.predecessors_of(2)
73
- end
74
-
75
- def test_add_edge_with_new_vertices
76
- graph = Nanoc3::DirectedGraph.new([ 1 ])
77
- graph.add_edge(1, 2)
78
- graph.add_edge(3, 2)
79
-
80
- assert graph.vertices.include?(2)
81
- assert graph.vertices.include?(3)
82
- end
83
-
84
- def test_delete_edge
85
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
86
- graph.add_edge(1,2)
87
-
88
- assert_equal [ 2 ], graph.successors_of(1)
89
- assert_equal [ 1 ], graph.predecessors_of(2)
90
-
91
- graph.delete_edge(1, 2)
92
-
93
- assert_equal [], graph.successors_of(1)
94
- assert_equal [], graph.predecessors_of(2)
95
- end
96
-
97
- def test_delete_edges_from
98
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
99
-
100
- graph.add_edge(1, 2)
101
- graph.add_edge(2, 1)
102
- graph.add_edge(2, 3)
103
- graph.add_edge(3, 2)
104
- graph.add_edge(1, 3)
105
- graph.add_edge(3, 1)
106
-
107
- assert_equal [ 2, 3 ], graph.direct_predecessors_of(1).sort
108
- assert_equal [ 2, 3 ], graph.direct_successors_of(1).sort
109
- assert_equal [ 1, 3 ], graph.direct_predecessors_of(2).sort
110
- assert_equal [ 1, 3 ], graph.direct_successors_of(2).sort
111
- assert_equal [ 1, 2 ], graph.direct_predecessors_of(3).sort
112
- assert_equal [ 1, 2 ], graph.direct_successors_of(3).sort
113
- assert_equal Set.new([]), graph.roots
114
-
115
- graph.delete_edges_from(1)
116
-
117
- assert_equal [ 2, 3 ], graph.direct_predecessors_of(1).sort
118
- assert_equal [ ], graph.direct_successors_of(1).sort
119
- assert_equal [ 3 ], graph.direct_predecessors_of(2).sort
120
- assert_equal [ 1, 3 ], graph.direct_successors_of(2).sort
121
- assert_equal [ 2 ], graph.direct_predecessors_of(3).sort
122
- assert_equal [ 1, 2 ], graph.direct_successors_of(3).sort
123
- assert_equal Set.new([]), graph.roots
124
-
125
- graph.delete_edges_from(2)
126
-
127
- assert_equal [ 3 ], graph.direct_predecessors_of(1).sort
128
- assert_equal [ ], graph.direct_successors_of(1).sort
129
- assert_equal [ 3 ], graph.direct_predecessors_of(2).sort
130
- assert_equal [ ], graph.direct_successors_of(2).sort
131
- assert_equal [ ], graph.direct_predecessors_of(3).sort
132
- assert_equal [ 1, 2 ], graph.direct_successors_of(3).sort
133
- assert_equal Set.new([ 3 ]), graph.roots
134
- end
135
-
136
- def test_delete_edges_to
137
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
138
-
139
- graph.add_edge(1, 2)
140
- graph.add_edge(2, 1)
141
- graph.add_edge(2, 3)
142
- graph.add_edge(3, 2)
143
- graph.add_edge(1, 3)
144
- graph.add_edge(3, 1)
145
-
146
- assert_equal [ 2, 3 ], graph.direct_predecessors_of(1).sort
147
- assert_equal [ 2, 3 ], graph.direct_successors_of(1).sort
148
- assert_equal [ 1, 3 ], graph.direct_predecessors_of(2).sort
149
- assert_equal [ 1, 3 ], graph.direct_successors_of(2).sort
150
- assert_equal [ 1, 2 ], graph.direct_predecessors_of(3).sort
151
- assert_equal [ 1, 2 ], graph.direct_successors_of(3).sort
152
- assert_equal Set.new([]), graph.roots
153
-
154
- graph.delete_edges_to(1)
155
-
156
- assert_equal [ ], graph.direct_predecessors_of(1).sort
157
- assert_equal [ 2, 3 ], graph.direct_successors_of(1).sort
158
- assert_equal [ 1, 3 ], graph.direct_predecessors_of(2).sort
159
- assert_equal [ 3 ], graph.direct_successors_of(2).sort
160
- assert_equal [ 1, 2 ], graph.direct_predecessors_of(3).sort
161
- assert_equal [ 2 ], graph.direct_successors_of(3).sort
162
- assert_equal Set.new([ 1 ]), graph.roots
163
-
164
- graph.delete_edges_to(2)
165
-
166
- assert_equal [ ], graph.direct_predecessors_of(1).sort
167
- assert_equal [ 3 ], graph.direct_successors_of(1).sort
168
- assert_equal [ ], graph.direct_predecessors_of(2).sort
169
- assert_equal [ 3 ], graph.direct_successors_of(2).sort
170
- assert_equal [ 1, 2 ], graph.direct_predecessors_of(3).sort
171
- assert_equal [ ], graph.direct_successors_of(3).sort
172
- assert_equal Set.new([ 1, 2 ]), graph.roots
173
- end
174
-
175
- def test_delete_vertex
176
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
177
-
178
- graph.add_edge(1, 2)
179
- graph.add_edge(2, 1)
180
- graph.add_edge(2, 3)
181
- graph.add_edge(3, 2)
182
- graph.add_edge(1, 3)
183
- graph.add_edge(3, 1)
184
-
185
- graph.delete_vertex(2)
186
-
187
- assert_equal [ 3 ], graph.direct_predecessors_of(1).sort
188
- assert_equal [ 3 ], graph.direct_successors_of(1).sort
189
- assert_equal [ 1 ], graph.direct_predecessors_of(3).sort
190
- assert_equal [ 1 ], graph.direct_successors_of(3).sort
191
- assert_equal Set.new([]), graph.roots
192
- end
193
-
194
- def test_delete_vertex_resulting_roots
195
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
196
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
197
-
198
- graph.add_edge(1, 2)
199
- graph.add_edge(2, 3)
200
- assert_equal Set.new([ 1 ]), graph.roots
201
-
202
- graph.delete_vertex(2)
203
- assert_equal Set.new([ 1, 3 ]), graph.roots
204
- end
205
-
206
- def test_should_return_empty_array_for_nonexistant_vertices
207
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
208
-
209
- assert_equal [], graph.direct_predecessors_of(4)
210
- assert_equal [], graph.predecessors_of(4)
211
- assert_equal [], graph.direct_successors_of(4)
212
- assert_equal [], graph.successors_of(4)
213
- end
214
-
215
- def test_roots_after_init
216
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
217
-
218
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
219
- end
220
-
221
- def test_roots_after_adding_edge
222
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
223
- graph.add_edge(1, 2)
224
- assert_equal Set.new([ 1, 3 ]), graph.roots
225
-
226
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
227
- graph.add_edge(1, 3)
228
- assert_equal Set.new([ 1, 2 ]), graph.roots
229
-
230
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
231
- graph.add_edge(2, 1)
232
- assert_equal Set.new([ 2, 3 ]), graph.roots
233
-
234
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
235
- graph.add_edge(1, 2)
236
- graph.add_edge(2, 3)
237
- assert_equal Set.new([ 1 ]), graph.roots
238
-
239
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
240
- graph.add_edge(1, 2)
241
- graph.add_edge(2, 3)
242
- graph.add_edge(3, 1)
243
- assert_equal Set.new([]), graph.roots
244
- end
245
-
246
- def test_roots_after_removing_edge
247
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
248
- graph.add_edge(1, 2)
249
- graph.delete_edge(1, 2)
250
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
251
-
252
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
253
- graph.add_edge(1, 3)
254
- assert_equal Set.new([ 1, 2 ]), graph.roots
255
- graph.delete_edge(1, 2) # no such edge
256
- assert_equal Set.new([ 1, 2 ]), graph.roots
257
-
258
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
259
- graph.add_edge(2, 1)
260
- graph.delete_edge(2, 1)
261
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
262
-
263
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
264
- graph.add_edge(1, 2)
265
- graph.add_edge(2, 3)
266
- graph.delete_edge(1, 2)
267
- assert_equal Set.new([ 1, 2 ]), graph.roots
268
- graph.delete_edge(2, 3)
269
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
270
-
271
- graph = Nanoc3::DirectedGraph.new([ 1, 2, 3 ])
272
- graph.add_edge(1, 2)
273
- graph.add_edge(2, 3)
274
- graph.add_edge(3, 1)
275
- graph.delete_edge(1, 2)
276
- assert_equal Set.new([ 2 ]), graph.roots
277
- graph.delete_edge(2, 3)
278
- assert_equal Set.new([ 2, 3 ]), graph.roots
279
- graph.delete_edge(3, 1)
280
- assert_equal Set.new([ 1, 2, 3 ]), graph.roots
281
- end
282
-
283
- end
@@ -1,83 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::FilterTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def test_initialize
8
- # Create filter
9
- filter = Nanoc3::Filter.new
10
-
11
- # Test assigns
12
- assert_equal({}, filter.instance_eval { @assigns })
13
- end
14
-
15
- def test_assigns
16
- # Create filter
17
- filter = Nanoc3::Filter.new({ :foo => 'bar' })
18
-
19
- # Check assigns
20
- assert_equal('bar', filter.assigns[:foo])
21
- end
22
-
23
- def test_assigns_with_instance_variables
24
- # Create filter
25
- filter = Nanoc3::Filter.new({ :foo => 'bar' })
26
-
27
- # Check assigns
28
- assert_equal('bar', filter.instance_eval { @foo })
29
- end
30
-
31
- def test_assigns_with_instance_methods
32
- # Create filter
33
- filter = Nanoc3::Filter.new({ :foo => 'bar' })
34
-
35
- # Check assigns
36
- assert_equal('bar', filter.instance_eval { foo })
37
- end
38
-
39
- def test_run
40
- # Create filter
41
- filter = Nanoc3::Filter.new
42
-
43
- # Make sure an error is raised
44
- assert_raises(NotImplementedError) do
45
- filter.run(nil)
46
- end
47
- end
48
-
49
- def test_filename_item
50
- # Mock items
51
- item = mock
52
- item.expects(:identifier).returns('/foo/bar/baz/')
53
- item_rep = mock
54
- item_rep.expects(:name).returns(:quux)
55
-
56
- # Create filter
57
- filter = Nanoc3::Filter.new({ :item => item, :item_rep => item_rep })
58
-
59
- # Check filename
60
- assert_equal('item /foo/bar/baz/ (rep quux)', filter.filename)
61
- end
62
-
63
- def test_filename_layout
64
- # Mock items
65
- layout = mock
66
- layout.expects(:identifier).returns('/wohba/')
67
-
68
- # Create filter
69
- filter = Nanoc3::Filter.new({ :item => mock, :item_rep => mock, :layout => layout })
70
-
71
- # Check filename
72
- assert_equal('layout /wohba/', filter.filename)
73
- end
74
-
75
- def test_filename_unknown
76
- # Create filter
77
- filter = Nanoc3::Filter.new({})
78
-
79
- # Check filename
80
- assert_equal('?', filter.filename)
81
- end
82
-
83
- end
@@ -1,179 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Nanoc3::ItemTest < MiniTest::Unit::TestCase
4
-
5
- include Nanoc3::TestHelpers
6
-
7
- def test_initialize_with_attributes_with_string_keys
8
- item = Nanoc3::Item.new("foo", { 'abc' => 'xyz' }, '/foo/')
9
-
10
- assert_equal nil, item.attributes['abc']
11
- assert_equal 'xyz', item.attributes[:abc]
12
- end
13
-
14
- def test_initialize_with_unclean_identifier
15
- item = Nanoc3::Item.new("foo", {}, '/foo')
16
-
17
- assert_equal '/foo/', item.identifier
18
- end
19
-
20
- def test_frozen_identifier
21
- item = Nanoc3::Item.new("foo", {}, '/foo')
22
-
23
- raised = false
24
- begin
25
- item.identifier.chop!
26
- rescue => error
27
- raised = true
28
- assert_match /^can't modify frozen [Ss]tring$/, error.message
29
- end
30
- assert raised, 'Should have raised when trying to modify a frozen string'
31
- end
32
-
33
- def test_lookup
34
- # Create item
35
- item = Nanoc3::Item.new(
36
- "content",
37
- { :one => 'one in item' },
38
- '/path/'
39
- )
40
-
41
- # Test finding one
42
- assert_equal('one in item', item[:one])
43
-
44
- # Test finding two
45
- assert_equal(nil, item[:two])
46
- end
47
-
48
- def test_set_attribute
49
- item = Nanoc3::Item.new("foo", {}, '/foo')
50
- assert_equal nil, item[:motto]
51
-
52
- item[:motto] = 'More human than human'
53
- assert_equal 'More human than human', item[:motto]
54
- end
55
-
56
- def test_compiled_content_with_default_rep_and_default_snapshot
57
- # Mock rep
58
- rep = Object.new
59
- def rep.name ; :default ; end
60
- def rep.compiled_content(params)
61
- "content at #{params[:snapshot].inspect}"
62
- end
63
-
64
- # Mock item
65
- item = Nanoc3::Item.new("foo", {}, '/foo')
66
- item.expects(:reps).returns([ rep ])
67
-
68
- # Check
69
- assert_equal 'content at nil', item.compiled_content
70
- end
71
-
72
- def test_compiled_content_with_custom_rep_and_default_snapshot
73
- # Mock reps
74
- rep = Object.new
75
- def rep.name ; :foo ; end
76
- def rep.compiled_content(params)
77
- "content at #{params[:snapshot].inspect}"
78
- end
79
-
80
- # Mock item
81
- item = Nanoc3::Item.new("foo", {}, '/foo')
82
- item.expects(:reps).returns([ rep ])
83
-
84
- # Check
85
- assert_equal 'content at nil', item.compiled_content(:rep => :foo)
86
- end
87
-
88
- def test_compiled_content_with_default_rep_and_custom_snapshot
89
- # Mock reps
90
- rep = Object.new
91
- def rep.name ; :default ; end
92
- def rep.compiled_content(params)
93
- "content at #{params[:snapshot].inspect}"
94
- end
95
-
96
- # Mock item
97
- item = Nanoc3::Item.new("foo", {}, '/foo')
98
- item.expects(:reps).returns([ rep ])
99
-
100
- # Check
101
- assert_equal 'content at :blah', item.compiled_content(:snapshot => :blah)
102
- end
103
-
104
- def test_compiled_content_with_custom_nonexistant_rep
105
- # Mock item
106
- item = Nanoc3::Item.new("foo", {}, '/foo')
107
- item.expects(:reps).returns([])
108
-
109
- # Check
110
- assert_raises(Nanoc3::Errors::Generic) do
111
- item.compiled_content(:rep => :lkasdhflahgwfe)
112
- end
113
- end
114
-
115
- def test_path_with_default_rep
116
- # Mock reps
117
- rep = mock
118
- rep.expects(:name).returns(:default)
119
- rep.expects(:path).returns('the correct path')
120
-
121
- # Mock item
122
- item = Nanoc3::Item.new("foo", {}, '/foo')
123
- item.expects(:reps).returns([ rep ])
124
-
125
- # Check
126
- assert_equal 'the correct path', item.path
127
- end
128
-
129
- def test_path_with_custom_rep
130
- # Mock reps
131
- rep = mock
132
- rep.expects(:name).returns(:moo)
133
- rep.expects(:path).returns('the correct path')
134
-
135
- # Mock item
136
- item = Nanoc3::Item.new("foo", {}, '/foo')
137
- item.expects(:reps).returns([ rep ])
138
-
139
- # Check
140
- assert_equal 'the correct path', item.path(:rep => :moo)
141
- end
142
-
143
- def test_freeze_should_disallow_changes
144
- item = Nanoc3::Item.new("foo", { :a => { :b => 123 }}, '/foo/')
145
- item.freeze
146
-
147
- raised = false
148
- begin
149
- item[:abc] = '123'
150
- rescue => e
151
- raised = true
152
- assert_match /^can't modify frozen /, e.message
153
- end
154
- assert raised
155
-
156
- raised = false
157
- begin
158
- item[:a][:b] = '456'
159
- rescue => e
160
- raised = true
161
- assert_match /^can't modify frozen /, e.message
162
- end
163
- assert raised
164
- end
165
-
166
- def test_dump_and_load
167
- item = Nanoc3::Item.new(
168
- "foobar",
169
- { :a => { :b => 123 }},
170
- '/foo/')
171
-
172
- item = Marshal.load(Marshal.dump(item))
173
-
174
- assert_equal '/foo/', item.identifier
175
- assert_equal 'foobar', item.raw_content
176
- assert_equal({ :a => { :b => 123 }}, item.attributes)
177
- end
178
-
179
- end