webgen 1.0.0.beta3 → 1.0.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 (148) hide show
  1. checksums.yaml +7 -0
  2. data/COPYING +23 -1
  3. data/Rakefile +16 -77
  4. data/VERSION +1 -1
  5. data/bin/webgen +0 -0
  6. data/data/webgen/basic_website_template/ext/init.rb +3 -1
  7. data/data/webgen/basic_website_template/src/.gitignore +0 -0
  8. data/data/webgen/basic_website_template/webgen.config +1 -1
  9. data/data/webgen/bundle_template_files/info.yaml.erb +14 -2
  10. data/data/webgen/passive_sources/default.metainfo +10 -0
  11. data/data/webgen/passive_sources/templates/api.template +16 -2
  12. data/data/webgen/passive_sources/templates/feed.template +5 -5
  13. data/data/webgen/passive_sources/templates/sitemap.template +1 -1
  14. data/data/webgen/passive_sources/templates/tag.template +8 -4
  15. data/lib/webgen/blackboard.rb +21 -5
  16. data/lib/webgen/bundle/built-in-show-changes/info.yaml +17 -0
  17. data/lib/webgen/bundle/built-in-show-changes/init.rb +4 -5
  18. data/lib/webgen/bundle/built-in/info.yaml +1064 -0
  19. data/lib/webgen/bundle/built-in/init.rb +103 -136
  20. data/lib/webgen/bundle_loader.rb +82 -9
  21. data/lib/webgen/cli.rb +12 -8
  22. data/lib/webgen/cli/commands/create.rb +27 -0
  23. data/lib/webgen/cli/{create_bundle_command.rb → commands/create_bundle.rb} +2 -2
  24. data/lib/webgen/cli/{create_command.rb → commands/create_website.rb} +2 -2
  25. data/lib/webgen/cli/commands/generate.rb +66 -0
  26. data/lib/webgen/cli/{install_bundle_command.rb → commands/install.rb} +1 -1
  27. data/lib/webgen/cli/{show_command.rb → commands/show.rb} +6 -4
  28. data/lib/webgen/cli/{list_bundle_command.rb → commands/show_bundles.rb} +12 -15
  29. data/lib/webgen/cli/{show_config_command.rb → commands/show_config.rb} +34 -6
  30. data/lib/webgen/cli/{show_dependencies_command.rb → commands/show_dependencies.rb} +0 -0
  31. data/lib/webgen/cli/{show_extensions_command.rb → commands/show_extensions.rb} +1 -13
  32. data/lib/webgen/cli/{show_tree_command.rb → commands/show_tree.rb} +3 -0
  33. data/lib/webgen/cli/utils.rb +1 -1
  34. data/lib/webgen/configuration.rb +9 -11
  35. data/lib/webgen/content_processor/html_head.rb +3 -4
  36. data/lib/webgen/content_processor/rainpress.rb +21 -0
  37. data/lib/webgen/content_processor/sass.rb +8 -8
  38. data/lib/webgen/content_processor/tikz.rb +59 -16
  39. data/lib/webgen/item_tracker.rb +33 -12
  40. data/lib/webgen/item_tracker/missing_node.rb +5 -5
  41. data/lib/webgen/item_tracker/template_chain.rb +52 -0
  42. data/lib/webgen/misc/dummy_index.rb +78 -0
  43. data/lib/webgen/node.rb +1 -1
  44. data/lib/webgen/node_finder.rb +86 -141
  45. data/lib/webgen/page.rb +5 -5
  46. data/lib/webgen/path.rb +4 -1
  47. data/lib/webgen/path_handler.rb +25 -21
  48. data/lib/webgen/path_handler/api.rb +36 -3
  49. data/lib/webgen/path_handler/base.rb +20 -4
  50. data/lib/webgen/path_handler/feed.rb +6 -2
  51. data/lib/webgen/path_handler/meta_info.rb +4 -2
  52. data/lib/webgen/path_handler/page.rb +5 -7
  53. data/lib/webgen/path_handler/sitemap.rb +6 -1
  54. data/lib/webgen/path_handler/virtual.rb +6 -8
  55. data/lib/webgen/source/file_system.rb +2 -2
  56. data/lib/webgen/tag.rb +22 -18
  57. data/lib/webgen/tag/menu.rb +5 -5
  58. data/lib/webgen/test_helper.rb +18 -18
  59. data/lib/webgen/utils/external_command.rb +1 -1
  60. data/lib/webgen/utils/tag_parser.rb +1 -1
  61. data/lib/webgen/vendor/rainpress.rb +168 -0
  62. data/lib/webgen/version.rb +1 -1
  63. data/lib/webgen/website.rb +10 -10
  64. data/man/man1/webgen.1 +54 -23
  65. data/test/test_documentation.rb +27 -4
  66. data/test/webgen/cli/test_logger.rb +1 -1
  67. data/test/webgen/content_processor/test_blocks.rb +1 -1
  68. data/test/webgen/content_processor/test_builder.rb +3 -2
  69. data/test/webgen/content_processor/test_erb.rb +1 -1
  70. data/test/webgen/content_processor/test_erubis.rb +2 -2
  71. data/test/webgen/content_processor/test_fragments.rb +1 -1
  72. data/test/webgen/content_processor/test_haml.rb +2 -2
  73. data/test/webgen/content_processor/test_html_head.rb +5 -1
  74. data/test/webgen/content_processor/test_kramdown.rb +2 -2
  75. data/test/webgen/content_processor/test_maruku.rb +2 -2
  76. data/test/webgen/content_processor/test_r_discount.rb +2 -2
  77. data/test/webgen/content_processor/test_r_doc.rb +1 -1
  78. data/test/webgen/content_processor/test_rainpress.rb +19 -0
  79. data/test/webgen/content_processor/test_red_cloth.rb +2 -2
  80. data/test/webgen/content_processor/test_ruby.rb +1 -1
  81. data/test/webgen/content_processor/test_sass.rb +8 -6
  82. data/test/webgen/content_processor/test_scss.rb +3 -3
  83. data/test/webgen/content_processor/test_tags.rb +1 -1
  84. data/test/webgen/content_processor/test_tidy.rb +9 -1
  85. data/test/webgen/content_processor/test_tikz.rb +6 -3
  86. data/test/webgen/content_processor/test_xmllint.rb +9 -2
  87. data/test/webgen/destination/test_file_system.rb +4 -4
  88. data/test/webgen/item_tracker/test_file.rb +1 -1
  89. data/test/webgen/item_tracker/test_missing_node.rb +1 -1
  90. data/test/webgen/item_tracker/test_node_content.rb +1 -1
  91. data/test/webgen/item_tracker/test_node_meta_info.rb +1 -1
  92. data/test/webgen/item_tracker/test_nodes.rb +2 -4
  93. data/test/webgen/item_tracker/test_template_chain.rb +36 -0
  94. data/test/webgen/misc/test_dummy_index.rb +83 -0
  95. data/test/webgen/path_handler/test_api.rb +6 -46
  96. data/test/webgen/path_handler/test_base.rb +3 -2
  97. data/test/webgen/path_handler/test_copy.rb +1 -1
  98. data/test/webgen/path_handler/test_feed.rb +3 -4
  99. data/test/webgen/path_handler/test_meta_info.rb +1 -1
  100. data/test/webgen/path_handler/test_page.rb +1 -1
  101. data/test/webgen/path_handler/test_page_utils.rb +1 -1
  102. data/test/webgen/path_handler/test_sitemap.rb +3 -5
  103. data/test/webgen/path_handler/test_template.rb +1 -1
  104. data/test/webgen/path_handler/test_virtual.rb +1 -3
  105. data/test/webgen/source/test_file_system.rb +9 -4
  106. data/test/webgen/source/test_stacked.rb +1 -1
  107. data/test/webgen/source/test_tar_archive.rb +2 -2
  108. data/test/webgen/tag/test_breadcrumb_trail.rb +1 -1
  109. data/test/webgen/tag/test_coderay.rb +3 -2
  110. data/test/webgen/tag/test_date.rb +1 -1
  111. data/test/webgen/tag/test_execute_command.rb +1 -1
  112. data/test/webgen/tag/test_include_file.rb +1 -1
  113. data/test/webgen/tag/test_langbar.rb +1 -1
  114. data/test/webgen/tag/test_link.rb +1 -1
  115. data/test/webgen/tag/test_menu.rb +12 -30
  116. data/test/webgen/tag/test_meta_info.rb +1 -1
  117. data/test/webgen/tag/test_relocatable.rb +1 -1
  118. data/test/webgen/tag/test_tikz.rb +3 -2
  119. data/test/webgen/task/test_create_website.rb +2 -2
  120. data/test/webgen/test_blackboard.rb +11 -3
  121. data/test/webgen/test_bundle_loader.rb +26 -9
  122. data/test/webgen/test_cache.rb +1 -1
  123. data/test/webgen/test_cli.rb +2 -2
  124. data/test/webgen/test_configuration.rb +8 -9
  125. data/test/webgen/test_content_processor.rb +1 -1
  126. data/test/webgen/test_context.rb +1 -1
  127. data/test/webgen/test_core_ext.rb +1 -1
  128. data/test/webgen/test_destination.rb +1 -1
  129. data/test/webgen/test_error.rb +5 -5
  130. data/test/webgen/test_extension_manager.rb +1 -1
  131. data/test/webgen/test_item_tracker.rb +26 -5
  132. data/test/webgen/test_languages.rb +1 -1
  133. data/test/webgen/test_logger.rb +1 -1
  134. data/test/webgen/test_node.rb +1 -1
  135. data/test/webgen/test_node_finder.rb +2 -2
  136. data/test/webgen/test_page.rb +5 -5
  137. data/test/webgen/test_path.rb +8 -8
  138. data/test/webgen/test_rake_task.rb +1 -1
  139. data/test/webgen/test_source.rb +1 -1
  140. data/test/webgen/test_tag.rb +16 -24
  141. data/test/webgen/test_task.rb +1 -1
  142. data/test/webgen/test_tree.rb +1 -1
  143. data/test/webgen/test_utils.rb +1 -1
  144. data/test/webgen/test_website.rb +1 -1
  145. data/test/webgen/utils/test_tag_parser.rb +1 -1
  146. metadata +85 -105
  147. data/lib/webgen/cli/bundle_command.rb +0 -30
  148. data/lib/webgen/cli/generate_command.rb +0 -25
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/path_handler/base'
5
5
  require 'time'
6
6
 
7
- class TestPathHandlerBase < MiniTest::Unit::TestCase
7
+ class TestPathHandlerBase < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -18,7 +18,7 @@ class TestPathHandlerBase < MiniTest::Unit::TestCase
18
18
  end
19
19
 
20
20
  def setup
21
- setup_website
21
+ setup_website('website.base_url' => 'http://example.com/sub')
22
22
  @obj = TestPathHandler.new(@website)
23
23
  end
24
24
 
@@ -31,6 +31,7 @@ class TestPathHandlerBase < MiniTest::Unit::TestCase
31
31
  node = @obj.create_node(path) {|n| count += 1; assert_kind_of(Webgen::PathHandler::Base::Node, n)}
32
32
  assert_equal(path, node.node_info[:path])
33
33
  assert_kind_of(Time, node.meta_info['modified_at'])
34
+ assert_equal('http://example.com/sub/path.html', node.url)
34
35
  assert_equal(1, count)
35
36
  assert_nil(node.content)
36
37
  def (@obj).content(node); node; end
@@ -5,7 +5,7 @@ require 'webgen/path_handler/copy'
5
5
  require 'webgen/content_processor'
6
6
  require 'webgen/path'
7
7
 
8
- class TestPathHandlerCopy < MiniTest::Unit::TestCase
8
+ class TestPathHandlerCopy < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -7,13 +7,12 @@ require 'webgen/node_finder'
7
7
  require 'webgen/path'
8
8
  require 'webgen/version'
9
9
 
10
- class TestPathHandlerFeed < MiniTest::Unit::TestCase
10
+ class TestPathHandlerFeed < Minitest::Test
11
11
 
12
12
  include Webgen::TestHelper
13
13
 
14
14
  FEED_CONTENT = <<EOF
15
15
  ---
16
- site_url: http://example.com
17
16
  entries:
18
17
  :alcn: "*.html"
19
18
  author: Thomas Leitner
@@ -23,12 +22,12 @@ hallo
23
22
  EOF
24
23
 
25
24
  def setup
26
- setup_website('website.lang' => 'en')
25
+ setup_website('website.lang' => 'en', 'website.base_url' => 'http://example.com')
27
26
  @website.ext.node_finder = Webgen::NodeFinder.new(@website)
28
27
 
29
28
  @feed = Webgen::PathHandler::Feed.new(@website)
30
29
 
31
- root = Webgen::Node.new(@website.tree.dummy_root, '/', '/')
30
+ root = Webgen::PathHandler::Base::Node.new(@website.tree.dummy_root, '/', '/')
32
31
  @index_en = RenderNode.new("--- name:content\nMyContent\n--- name:abstract\nRealContent", root,
33
32
  'index.html', '/index.en.html', {'lang' => 'en', 'modified_at' => Time.now - 1, 'author' => 'test'})
34
33
  @file_en = RenderNode.new("--- name:content\nCContent\n--- name:abstract\nAContent", root,
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/path_handler/meta_info'
5
5
  require 'webgen/path'
6
6
 
7
- class TestPathHandlerMetaInfo < MiniTest::Unit::TestCase
7
+ class TestPathHandlerMetaInfo < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/path_handler/page'
5
5
  require 'webgen/path'
6
6
 
7
- class TestPathHandlerPage < MiniTest::Unit::TestCase
7
+ class TestPathHandlerPage < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -5,7 +5,7 @@ require 'webgen/path_handler/page_utils'
5
5
  require 'webgen/content_processor'
6
6
  require 'webgen/path'
7
7
 
8
- class TestPageUtils < MiniTest::Unit::TestCase
8
+ class TestPageUtils < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -6,13 +6,12 @@ require 'webgen/content_processor'
6
6
  require 'webgen/node_finder'
7
7
  require 'webgen/path'
8
8
 
9
- class TestPathHandlerSitemap < MiniTest::Unit::TestCase
9
+ class TestPathHandlerSitemap < Minitest::Test
10
10
 
11
11
  include Webgen::TestHelper
12
12
 
13
13
  SITEMAP_CONTENT = <<EOF
14
14
  ---
15
- site_url: http://example.com
16
15
  default_change_freq: daily
17
16
  default_priority: 0.5
18
17
  entries:
@@ -21,7 +20,6 @@ EOF
21
20
 
22
21
  SITEMAP_CONTENT_TEMPLATE = <<EOF
23
22
  ---
24
- site_url: http://example.com
25
23
  default_change_freq: daily
26
24
  default_priority: 0.5
27
25
  entries:
@@ -31,12 +29,12 @@ Yeah <%= context.node['title'] %>
31
29
  EOF
32
30
 
33
31
  def setup
34
- setup_website('website.lang' => 'en')
32
+ setup_website('website.lang' => 'en', 'website.base_url' => 'http://example.com')
35
33
  @website.ext.node_finder = Webgen::NodeFinder.new(@website)
36
34
 
37
35
  @sitemap = Webgen::PathHandler::Sitemap.new(@website)
38
36
 
39
- setup_default_nodes(@website.tree)
37
+ setup_default_nodes(@website.tree, Webgen::PathHandler::Base::Node)
40
38
  @website.tree.node_access[:alcn].each_value {|n| n.meta_info['modified_at'] = Time.now}
41
39
  @website.tree['/file.en.html'].meta_info['priority'] = 0.9
42
40
  @website.tree['/file.en.html'].meta_info['change_freq'] = 'hourly'
@@ -5,7 +5,7 @@ require 'webgen/path_handler/template'
5
5
  require 'webgen/path'
6
6
  require 'webgen/cache'
7
7
 
8
- class TestPathHandlerTemplate < MiniTest::Unit::TestCase
8
+ class TestPathHandlerTemplate < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/path_handler/virtual'
5
5
  require 'webgen/path'
6
6
 
7
- class TestPathHandlerVirtual < MiniTest::Unit::TestCase
7
+ class TestPathHandlerVirtual < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -78,8 +78,6 @@ EOF
78
78
  path = Webgen::Path.new('/virtual', 'dest_path' => '<parent><basename>(.<lang>)<ext>', 'modified_at' => @time)
79
79
  nodes = @virtual.create_nodes(path, Webgen::Page.from_data(CONTENT).blocks)
80
80
 
81
- nodes.each {|n| assert_equal(path, n.node_info[:path])}
82
-
83
81
  node_de = @root.tree['/path.de.html']
84
82
  node_en = @root.tree['/directory/path.en.html']
85
83
  dir = @root.tree['/dir/']
@@ -6,7 +6,7 @@ require 'fileutils'
6
6
  require 'rbconfig'
7
7
  require 'webgen/source/file_system'
8
8
 
9
- class TestSourceFileSystem < MiniTest::Unit::TestCase
9
+ class TestSourceFileSystem < Minitest::Test
10
10
 
11
11
  def setup
12
12
  @root = root = File.expand_path(File.dirname(__FILE__))
@@ -24,7 +24,7 @@ class TestSourceFileSystem < MiniTest::Unit::TestCase
24
24
  assert_equal('c:/tmp/hallo', source.root)
25
25
  else
26
26
  source = Webgen::Source::FileSystem.new(@website, '/tmp/hallo')
27
- assert_equal('**/*', source.glob)
27
+ assert_equal('{*,**/*}', source.glob)
28
28
  assert_equal('/tmp/hallo', source.root)
29
29
  end
30
30
  source = Webgen::Source::FileSystem.new(@website, '../hallo')
@@ -32,8 +32,13 @@ class TestSourceFileSystem < MiniTest::Unit::TestCase
32
32
  end
33
33
 
34
34
  def test_paths
35
- source = Webgen::Source::FileSystem.new(@website, '.', '/../source/**/*')
36
- assert(source.paths.length > 1)
35
+ source = Webgen::Source::FileSystem.new(@website, '.')
36
+ assert_equal(4, source.paths.length)
37
+ assert(source.paths.include?(Webgen::Path.new('/')))
38
+ assert(source.paths.include?(Webgen::Path.new('/test_file_system.rb')))
39
+
40
+ source = Webgen::Source::FileSystem.new(@website, '.', '/../source/{*,**/*}')
41
+ assert_equal(4, source.paths.length)
37
42
  assert(source.paths.include?(Webgen::Path.new('/source/')))
38
43
  assert(source.paths.include?(Webgen::Path.new('/source/test_file_system.rb')))
39
44
  end
@@ -3,7 +3,7 @@
3
3
  require 'minitest/autorun'
4
4
  require 'webgen/source/stacked'
5
5
 
6
- class TestSourceStacked < MiniTest::Unit::TestCase
6
+ class TestSourceStacked < Minitest::Test
7
7
 
8
8
  class TestSource
9
9
  def initialize(paths); @paths = paths; end
@@ -3,9 +3,8 @@
3
3
  require 'minitest/autorun'
4
4
  require 'fileutils'
5
5
  require 'rbconfig'
6
- require 'webgen/source/tar_archive'
7
6
 
8
- class TestSourceTarArchive < MiniTest::Unit::TestCase
7
+ class TestSourceTarArchive < Minitest::Test
9
8
 
10
9
  class FakeStream
11
10
 
@@ -30,6 +29,7 @@ class TestSourceTarArchive < MiniTest::Unit::TestCase
30
29
  end
31
30
 
32
31
  def setup
32
+ require 'webgen/source/tar_archive' rescue skip('Library archive-tar-minitar not installed')
33
33
  @stream = FakeStream.new
34
34
  end
35
35
 
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/content_processor'
5
5
  require 'webgen/tag/breadcrumb_trail'
6
6
 
7
- class TestTagBreadcrumbTrail < MiniTest::Unit::TestCase
7
+ class TestTagBreadcrumbTrail < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -1,13 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  require 'webgen/test_helper'
4
- require 'webgen/tag/coderay'
5
4
 
6
- class TestTagCoderay < MiniTest::Unit::TestCase
5
+ class TestTagCoderay < Minitest::Test
7
6
 
8
7
  include Webgen::TestHelper
9
8
 
10
9
  def test_call
10
+ require 'webgen/tag/coderay' rescue skip("Library coderay not installed")
11
+
11
12
  setup_context
12
13
  @website.ext.content_processor = Object.new
13
14
  @website.ext.content_processor.define_singleton_method(:call) {|_, context| context}
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/tag/date'
5
5
  require 'time'
6
6
 
7
- class TestTagDate < MiniTest::Unit::TestCase
7
+ class TestTagDate < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/tag/execute_command'
5
5
  require 'time'
6
6
 
7
- class TestTagExecuteCommand < MiniTest::Unit::TestCase
7
+ class TestTagExecuteCommand < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -5,7 +5,7 @@ require 'webgen/tag/include_file'
5
5
  require 'fileutils'
6
6
  require 'tempfile'
7
7
 
8
- class TestTagIncludeFile < MiniTest::Unit::TestCase
8
+ class TestTagIncludeFile < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/content_processor'
5
5
  require 'webgen/tag/langbar'
6
6
 
7
- class TestTagLangbar < MiniTest::Unit::TestCase
7
+ class TestTagLangbar < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -3,7 +3,7 @@
3
3
  require 'webgen/test_helper'
4
4
  require 'webgen/tag/link'
5
5
 
6
- class TestTagLink < MiniTest::Unit::TestCase
6
+ class TestTagLink < Minitest::Test
7
7
 
8
8
  include Webgen::TestHelper
9
9
 
@@ -5,7 +5,7 @@ require 'webgen/content_processor'
5
5
  require 'webgen/tag/menu'
6
6
  require 'webgen/node_finder'
7
7
 
8
- class TestTagMenu < MiniTest::Unit::TestCase
8
+ class TestTagMenu < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -21,41 +21,23 @@ class TestTagMenu < MiniTest::Unit::TestCase
21
21
 
22
22
  context = Webgen::Context.new(@website, :chain => [@website.tree['/dir/subfile.html']])
23
23
 
24
- assert_tag_result("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a><ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"./\">dir</a><ul><li class=\"webgen-menu-level3 webgen-menu-item-selected\"><a href=\"subfile.html\">subfile</a></li></ul></li></ul></li></ul>",
25
- context, {:ancestors => true}, 'nested')
24
+ assert_tag_result("<ul class=\"other\"><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a><ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"./\">dir</a><ul><li class=\"webgen-menu-level3 webgen-menu-item-selected\"><a href=\"subfile.html\">subfile</a></li></ul></li></ul></li></ul>",
25
+ context, {:ancestors => true}, 'nested', 'other', 'webgen-menu-level', 'webgen-menu-submenu', 'webgen-menu-submenu-inhierarchy', 'webgen-menu-item-selected')
26
26
 
27
- assert_tag_result("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a></li></ul><ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"./\">dir</a></li></ul><ul><li class=\"webgen-menu-level3 webgen-menu-item-selected\"><a href=\"subfile.html\">subfile</a></li></ul>",
28
- context, {:ancestors => true}, 'flat')
27
+ assert_tag_result("<ul class=\"menu\"><li class=\"level1 sub sub-hier\"><a href=\"../\"></a></li></ul><ul><li class=\"level2 sub sub-hier\"><a href=\"./\">dir</a></li></ul><ul><li class=\"level3 active\"><a href=\"subfile.html\">subfile</a></li></ul>",
28
+ context, {:ancestors => true}, 'flat', 'menu', 'level', 'sub', 'sub-hier', 'active')
29
29
  end
30
30
 
31
- def assert_tag_result(result, context, options, style)
31
+ def assert_tag_result(result, context, options, style, css_class, level, smenu, smenuh, selected)
32
32
  context[:config] = {'tag.menu.style' => style,
33
33
  'tag.menu.options' => options,
34
- 'tag.menu.template' => '/tag.template'}
34
+ 'tag.menu.template' => '/tag.template',
35
+ 'tag.menu.css_class' => css_class,
36
+ 'tag.menu.item_level_class' => level,
37
+ 'tag.menu.item_submenu_class' => smenu,
38
+ 'tag.menu.item_submenu_inhierarchy_class' => smenuh,
39
+ 'tag.menu.item_selected_class' => selected}
35
40
  assert_equal(result, Webgen::Tag::Menu.call('menu', '', context))
36
41
  end
37
42
 
38
- def test_static_menu_item_details
39
- setup_website
40
- setup_default_nodes(@website.tree)
41
- obj = Webgen::Tag::Menu
42
-
43
- assert_equal(["class=\"webgen-menu-level1 webgen-menu-submenu\"",
44
- "<a href=\"file.de.html\" hreflang=\"de\">file de</a>"],
45
- obj.menu_item_details(@website.tree['/file.en.html'], @website.tree['/file.de.html'],
46
- 'en', 1, true))
47
- assert_equal(["class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"",
48
- "<a href=\"./\"></a>"],
49
- obj.menu_item_details(@website.tree['/file.en.html'], @website.tree['/'],
50
- 'en', 2, true))
51
- assert_equal(["class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-item-selected\"",
52
- "<a href=\"file.en.html\" hreflang=\"en\">file en</a>"],
53
- obj.menu_item_details(@website.tree['/file.en.html'], @website.tree['/file.en.html'],
54
- 'en', 2, true))
55
- assert_equal(["class=\"webgen-menu-level3\"",
56
- "<a href=\"file.de.html\" hreflang=\"de\">file de</a>"],
57
- obj.menu_item_details(@website.tree['/file.en.html'], @website.tree['/file.de.html'],
58
- 'de', 3, false))
59
- end
60
-
61
43
  end
@@ -4,7 +4,7 @@ require 'webgen/test_helper'
4
4
  require 'webgen/tag/meta_info'
5
5
  require 'time'
6
6
 
7
- class TestTagMetaInfo < MiniTest::Unit::TestCase
7
+ class TestTagMetaInfo < Minitest::Test
8
8
 
9
9
  include Webgen::TestHelper
10
10
 
@@ -3,7 +3,7 @@
3
3
  require 'webgen/test_helper'
4
4
  require 'webgen/tag/relocatable'
5
5
 
6
- class TestTagRelocatable < MiniTest::Unit::TestCase
6
+ class TestTagRelocatable < Minitest::Test
7
7
 
8
8
  include Webgen::TestHelper
9
9
 
@@ -1,13 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  require 'webgen/test_helper'
4
- require 'webgen/tag/tikz'
5
4
 
6
- class TestTagTikz < MiniTest::Unit::TestCase
5
+ class TestTagTikz < Minitest::Test
7
6
 
8
7
  include Webgen::TestHelper
9
8
 
10
9
  def test_call
10
+ require 'webgen/tag/tikz' rescue skip($!.message)
11
+
11
12
  setup_context
12
13
  @website.ext.path_handler = MiniTest::Mock.new
13
14
 
@@ -5,7 +5,7 @@ require 'webgen/task/create_website'
5
5
  require 'fileutils'
6
6
  require 'ostruct'
7
7
 
8
- class TestTaskCreateWebsite < MiniTest::Unit::TestCase
8
+ class TestTaskCreateWebsite < Minitest::Test
9
9
 
10
10
  include Webgen::TestHelper
11
11
 
@@ -16,7 +16,7 @@ class TestTaskCreateWebsite < MiniTest::Unit::TestCase
16
16
  end
17
17
 
18
18
  def teardown
19
- FileUtils.remove_entry_secure(@website.directory)
19
+ FileUtils.remove_entry_secure(@website.directory) if Dir.exist?(@website.directory)
20
20
  end
21
21
 
22
22
  def test_static_call
@@ -3,7 +3,7 @@
3
3
  require 'minitest/autorun'
4
4
  require 'webgen/blackboard'
5
5
 
6
- class TestBlackboard < MiniTest::Unit::TestCase
6
+ class TestBlackboard < Minitest::Test
7
7
 
8
8
  def setup
9
9
  @blackboard = Webgen::Blackboard.new
@@ -11,9 +11,17 @@ class TestBlackboard < MiniTest::Unit::TestCase
11
11
 
12
12
  def test_add_listener
13
13
  assert_raises(ArgumentError) { @blackboard.add_listener(:test) }
14
- @blackboard.add_listener([:test, :other]) { throw :called }
14
+ @blackboard.add_listener(:test) { throw :called }
15
15
  assert_throws(:called) { @blackboard.dispatch_msg(:test) }
16
- assert_throws(:called) { @blackboard.dispatch_msg(:other) }
16
+
17
+ msgs = []
18
+ @blackboard.add_listener(:other, 'test') { msgs << 'test' }
19
+ @blackboard.add_listener(:other, nil, :before => 'test') { msgs << 'before' }
20
+ @blackboard.add_listener(:other, nil, :before => 'non-existing') { msgs << 'after 2' }
21
+ @blackboard.add_listener(:other, nil, :after => 'non-existing') { msgs << 'last' }
22
+ @blackboard.add_listener(:other, nil, :after => 'test') { msgs << 'after 1' }
23
+ @blackboard.dispatch_msg(:other)
24
+ assert_equal(['before', 'test', 'after 1', 'after 2', 'last'], msgs)
17
25
  end
18
26
 
19
27
  def test_remove_listener