Pimki 1.3.092 → 1.4.092

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 (88) hide show
  1. data/README +145 -131
  2. data/README-PIMKI +15 -5
  3. data/app/controllers/wiki.rb +167 -54
  4. data/app/models/author.rb +3 -3
  5. data/app/models/chunks/chunk.rb +3 -3
  6. data/app/models/chunks/engines.rb +18 -21
  7. data/app/models/chunks/include.rb +29 -29
  8. data/app/models/chunks/literal.rb +20 -20
  9. data/app/models/chunks/match.rb +19 -19
  10. data/app/models/chunks/nowiki.rb +31 -31
  11. data/app/models/chunks/nowiki_test.rb +14 -14
  12. data/app/models/chunks/test.rb +18 -18
  13. data/app/models/chunks/todo.rb +44 -23
  14. data/app/models/chunks/uri.rb +97 -97
  15. data/app/models/chunks/uri_test.rb +92 -92
  16. data/app/models/chunks/wiki.rb +4 -4
  17. data/app/models/chunks/wiki_symbols.rb +22 -22
  18. data/app/models/chunks/wiki_test.rb +36 -36
  19. data/app/models/page.rb +39 -7
  20. data/app/models/page_lock.rb +23 -23
  21. data/app/models/page_set.rb +72 -72
  22. data/app/models/page_test.rb +75 -75
  23. data/app/models/revision.rb +1 -1
  24. data/app/models/revision_test.rb +251 -251
  25. data/app/models/web.rb +19 -6
  26. data/app/models/web_test.rb +52 -52
  27. data/app/models/wiki_content.rb +131 -119
  28. data/app/models/wiki_service.rb +31 -16
  29. data/app/models/wiki_service_test.rb +15 -15
  30. data/app/models/wiki_words.rb +1 -1
  31. data/app/models/wiki_words_test.rb +12 -12
  32. data/app/views/bottom.rhtml +3 -3
  33. data/app/views/markdown_help.rhtml +15 -15
  34. data/app/views/menu.rhtml +20 -20
  35. data/app/views/navigation.rhtml +26 -26
  36. data/app/views/rdoc_help.rhtml +15 -15
  37. data/app/views/static_style_sheet.rhtml +237 -237
  38. data/app/views/style.rhtml +178 -178
  39. data/app/views/textile_help.rhtml +27 -27
  40. data/app/views/top.rhtml +7 -2
  41. data/app/views/wiki/authors.rhtml +15 -15
  42. data/app/views/wiki/bliki.rhtml +101 -101
  43. data/app/views/wiki/bliki_edit.rhtml +3 -0
  44. data/app/views/wiki/bliki_new.rhtml +3 -0
  45. data/app/views/wiki/bliki_revision.rhtml +90 -90
  46. data/app/views/wiki/edit.rhtml +12 -3
  47. data/app/views/wiki/edit_menu.rhtml +64 -47
  48. data/app/views/wiki/edit_web.rhtml +65 -18
  49. data/app/views/wiki/export.rhtml +14 -14
  50. data/app/views/wiki/feeds.rhtml +10 -10
  51. data/app/views/wiki/list.rhtml +17 -15
  52. data/app/views/wiki/locked.rhtml +13 -13
  53. data/app/views/wiki/login.rhtml +10 -10
  54. data/app/views/wiki/mind.rhtml +0 -1
  55. data/app/views/wiki/new.rhtml +8 -3
  56. data/app/views/wiki/new_system.rhtml +77 -77
  57. data/app/views/wiki/new_web.rhtml +63 -63
  58. data/app/views/wiki/page.rhtml +88 -82
  59. data/app/views/wiki/print.rhtml +15 -15
  60. data/app/views/wiki/published.rhtml +2 -1
  61. data/app/views/wiki/recently_revised.rhtml +31 -31
  62. data/app/views/wiki/revision.rhtml +1 -7
  63. data/app/views/wiki/rollback.rhtml +31 -0
  64. data/app/views/wiki/rss_feed.rhtml +21 -21
  65. data/app/views/wiki/search.rhtml +48 -48
  66. data/app/views/wiki/tex.rhtml +22 -22
  67. data/app/views/wiki/tex_web.rhtml +34 -34
  68. data/app/views/wiki/todo.rhtml +90 -67
  69. data/app/views/wiki/web_list.rhtml +12 -12
  70. data/app/views/wiki_words_help.rhtml +1 -1
  71. data/favicon.png +0 -0
  72. data/libraries/action_controller_servlet.rb +17 -2
  73. data/libraries/bluecloth.rb +1127 -1127
  74. data/libraries/diff/diff.rb +474 -474
  75. data/libraries/diff/diff_test.rb +79 -79
  76. data/libraries/erb.rb +490 -490
  77. data/libraries/madeleine/automatic.rb +418 -357
  78. data/libraries/madeleine/clock.rb +94 -94
  79. data/libraries/madeleine/files.rb +19 -0
  80. data/libraries/madeleine/zmarshal.rb +60 -0
  81. data/libraries/madeleine_service.rb +14 -15
  82. data/libraries/rdocsupport.rb +155 -155
  83. data/libraries/redcloth_for_tex.rb +869 -869
  84. data/libraries/redcloth_for_tex_test.rb +40 -40
  85. data/libraries/view_helper.rb +32 -32
  86. data/libraries/web_controller_server.rb +96 -94
  87. data/pimki.rb +47 -6
  88. metadata +18 -4
@@ -1,41 +1,41 @@
1
- require "test/unit"
2
- require "redcloth_for_tex"
3
-
4
- class RedClothForTexTest < Test::Unit::TestCase
5
- def test_basics
6
- assert_equal '{\bf First Page}', RedClothForTex.new("*First Page*").to_tex
7
- assert_equal '{\em First Page}', RedClothForTex.new("_First Page_").to_tex
8
- assert_equal "\\begin{itemize}\n\t\\item A\n\t\t\\item B\n\t\t\\item C\n\t\\end{itemize}", RedClothForTex.new("* A\n* B\n* C").to_tex
9
- end
10
-
11
- def test_blocks
12
- assert_equal '\section*{hello}', RedClothForTex.new("h1. hello").to_tex
13
- assert_equal '\subsection*{hello}', RedClothForTex.new("h2. hello").to_tex
14
- end
15
-
16
- def test_table_of_contents
17
- assert_equal(
18
- "\n\\section{A}\nAbe\n\n\\subsection{B}\nBabe\n\n\\subsection{C}\n\n\\section{D}\n\n\\subsection{E}\n\n\\subsubsection{F}",
19
- table_of_contents("* [[A]]\n** [[B]]\n** [[C]]\n* D\n** [[E]]\n*** F", { "A" => "Abe", "B" => "Babe" } )
20
- )
21
- end
22
-
23
- def test_entities
24
- assert_equal "Beck \\& Fowler are 100\\% cool", RedClothForTex.new("Beck & Fowler are 100% cool").to_tex
25
- end
26
-
27
- def test_bracket_links
28
- assert_equal "such a Horrible Day, but I won't be Made Useless", RedClothForTex.new("such a [[Horrible Day]], but I won't be [[Made Useless]]").to_tex
29
- end
30
-
31
- def test_footnotes_on_abbreviations
32
- assert_equal(
33
- "such a Horrible Day\\footnote{1}, but I won't be Made Useless",
34
- RedClothForTex.new("such a [[Horrible Day]][1], but I won't be [[Made Useless]]").to_tex
35
- )
36
- end
37
-
38
- def test_subsection_depth
39
- assert_equal "\\subsubsection*{Hello}", RedClothForTex.new("h4. Hello").to_tex
40
- end
1
+ require "test/unit"
2
+ require "redcloth_for_tex"
3
+
4
+ class RedClothForTexTest < Test::Unit::TestCase
5
+ def test_basics
6
+ assert_equal '{\bf First Page}', RedClothForTex.new("*First Page*").to_tex
7
+ assert_equal '{\em First Page}', RedClothForTex.new("_First Page_").to_tex
8
+ assert_equal "\\begin{itemize}\n\t\\item A\n\t\t\\item B\n\t\t\\item C\n\t\\end{itemize}", RedClothForTex.new("* A\n* B\n* C").to_tex
9
+ end
10
+
11
+ def test_blocks
12
+ assert_equal '\section*{hello}', RedClothForTex.new("h1. hello").to_tex
13
+ assert_equal '\subsection*{hello}', RedClothForTex.new("h2. hello").to_tex
14
+ end
15
+
16
+ def test_table_of_contents
17
+ assert_equal(
18
+ "\n\\section{A}\nAbe\n\n\\subsection{B}\nBabe\n\n\\subsection{C}\n\n\\section{D}\n\n\\subsection{E}\n\n\\subsubsection{F}",
19
+ table_of_contents("* [[A]]\n** [[B]]\n** [[C]]\n* D\n** [[E]]\n*** F", { "A" => "Abe", "B" => "Babe" } )
20
+ )
21
+ end
22
+
23
+ def test_entities
24
+ assert_equal "Beck \\& Fowler are 100\\% cool", RedClothForTex.new("Beck & Fowler are 100% cool").to_tex
25
+ end
26
+
27
+ def test_bracket_links
28
+ assert_equal "such a Horrible Day, but I won't be Made Useless", RedClothForTex.new("such a [[Horrible Day]], but I won't be [[Made Useless]]").to_tex
29
+ end
30
+
31
+ def test_footnotes_on_abbreviations
32
+ assert_equal(
33
+ "such a Horrible Day\\footnote{1}, but I won't be Made Useless",
34
+ RedClothForTex.new("such a [[Horrible Day]][1], but I won't be [[Made Useless]]").to_tex
35
+ )
36
+ end
37
+
38
+ def test_subsection_depth
39
+ assert_equal "\\subsubsection*{Hello}", RedClothForTex.new("h4. Hello").to_tex
40
+ end
41
41
  end
@@ -1,33 +1,33 @@
1
- module ViewHelper
2
- # Accepts a container (hash, array, enumerable, your type) and returns a string of option tags. Given a container
3
- # where the elements respond to first and last (such as a two-element array), the "lasts" serve as option values and
4
- # the "firsts" as option text. Hashes are turned into this form automatically, so the keys become "firsts" and values
5
- # become lasts. If +selected+ is specified, the matching "last" or element will get the selected option-tag.
6
- #
7
- # Examples (call, result):
8
- # html_options([["Dollar", "$"], ["Kroner", "DKK"]])
9
- # <option value="$">Dollar</option>\n<option value="DKK">Kroner</option>
10
- #
11
- # html_options([ "VISA", "Mastercard" ], "Mastercard")
12
- # <option>VISA</option>\n<option selected>Mastercard</option>
13
- #
14
- # html_options({ "Basic" => "$20", "Plus" => "$40" }, "$40")
15
- # <option value="$20">Basic</option>\n<option value="$40" selected>Plus</option>
16
- def html_options(container, selected = nil)
17
- container = container.to_a if Hash === container
18
-
19
- html_options = container.inject([]) do |options, element|
20
- if element.respond_to?(:first) && element.respond_to?(:last)
21
- if element.last != selected
22
- options << "<option value=\"#{element.last}\">#{element.first}</option>"
23
- else
24
- options << "<option value=\"#{element.last}\" selected>#{element.first}</option>"
25
- end
26
- else
27
- options << ((element != selected) ? "<option>#{element}</option>" : "<option selected>#{element}</option>")
28
- end
29
- end
30
-
31
- html_options.join("\n")
32
- end
1
+ module ViewHelper
2
+ # Accepts a container (hash, array, enumerable, your type) and returns a string of option tags. Given a container
3
+ # where the elements respond to first and last (such as a two-element array), the "lasts" serve as option values and
4
+ # the "firsts" as option text. Hashes are turned into this form automatically, so the keys become "firsts" and values
5
+ # become lasts. If +selected+ is specified, the matching "last" or element will get the selected option-tag.
6
+ #
7
+ # Examples (call, result):
8
+ # html_options([["Dollar", "$"], ["Kroner", "DKK"]])
9
+ # <option value="$">Dollar</option>\n<option value="DKK">Kroner</option>
10
+ #
11
+ # html_options([ "VISA", "Mastercard" ], "Mastercard")
12
+ # <option>VISA</option>\n<option selected>Mastercard</option>
13
+ #
14
+ # html_options({ "Basic" => "$20", "Plus" => "$40" }, "$40")
15
+ # <option value="$20">Basic</option>\n<option value="$40" selected>Plus</option>
16
+ def html_options(container, selected = nil)
17
+ container = container.to_a if Hash === container
18
+
19
+ html_options = container.inject([]) do |options, element|
20
+ if element.respond_to?(:first) && element.respond_to?(:last)
21
+ if element.last != selected
22
+ options << "<option value=\"#{element.last}\">#{element.first}</option>"
23
+ else
24
+ options << "<option value=\"#{element.last}\" selected>#{element.first}</option>"
25
+ end
26
+ else
27
+ options << ((element != selected) ? "<option>#{element}</option>" : "<option selected>#{element}</option>")
28
+ end
29
+ end
30
+
31
+ html_options.join("\n")
32
+ end
33
33
  end
@@ -1,95 +1,97 @@
1
- require 'webrick'
2
- include WEBrick
3
-
4
- # Terminology:
5
- # * Static controller: Is a controller that has all it's show_* and do_* methods mounted by the server
6
- # at server start, so the server will handle request rejection of invalid requests
7
- # * Dynamic controller: Is a controller that's mounted with a responsibility to handle all the request mapping
8
- # itself. Hence, the server will never reject a request that's below the controller in the path.
9
- class WebControllerServer
10
- STATIC_MOUNTING = 1
11
- DYNAMIC_MOUNTING = 2
12
-
13
- MOUNT_TYPE = DYNAMIC_MOUNTING
14
-
15
- SERVER_TYPE = (RUBY_PLATFORM =~ /mswin/ ? SimpleServer : Daemon)
16
-
17
- def WebControllerServer.the_active_server
18
- @the_active_server
19
- end
20
- def WebControllerServer.the_active_server= server
21
- @the_active_server = server
22
- end
23
-
24
- def initialize(port, server_type, controller_path)
25
- @server = WEBrick::HTTPServer::new(:Port => port, :ServerType => server_type || SERVER_TYPE)
26
- WebControllerServer::the_active_server = @server
27
- @server.logger.info "Your WEBrick server is now running on http://localhost:#{port}"
28
- @controller_path = controller_path
29
- mount_controllers
30
- start_server
31
- end
32
-
33
- private
34
- # Mounts all the controllers in the controller_path according to the mount type
35
- def mount_controllers
36
- require_controller_files
37
-
38
- case MOUNT_TYPE
39
- when STATIC_MOUNTING then controller_names.each { |name| mount_static_controller(name) }
40
- when DYNAMIC_MOUNTING then controller_names.each { |name| mount_dynamic_controller(name) }
41
- end
42
- end
43
-
44
- # Mounts the controller specified by <tt>controller_name</tt> to accept all requests below it's path.
45
- # If more than one controller is mounted by this WebControllerServer, the controller is mounted by name,
46
- # such that fx WikiController would get the requests of "/wiki/something" and "/wiki/some/thing/else".
47
- # If only one controller is mounted, all requests to this WebControllerServer is handled by that controller
48
- def mount_dynamic_controller(controller_name)
49
- mount_path = mounting_multiple_controllers? ? "/#{controller_name}" : "/"
50
- @server.mount(mount_path, controller_class(controller_name))
51
- end
52
-
53
- # Mount all public show_* and do_* methods as actions tied to the controller specified by <tt>controller_name</tt>.
54
- # If more than one controller is mounted by this WebControllerServer, the actions are mounted below the controller
55
- # in the path, such as "/wiki/page" or "/wiki/list". If only one controller is mounted, they're mounted directly on
56
- # the root, such as "/page" or "/list"
57
- def mount_static_controller(controller_name)
58
- controller_class(controller_name).public_instance_methods(false).each { |method|
59
- mount_path = (mounting_multiple_controllers? ? "/#{controller_name}" : "") + "/#{method}"
60
- @server.mount(mount_path, controller_class(controller_name))
61
- }
62
- end
63
-
64
- # Requires all the controller files that are present in the controller_path
65
- def require_controller_files
66
- controller_names.each { |controller| require @controller_path + controller }
67
- end
68
-
69
- # Returns true if more than one controller exists in the controller_path
70
- def mounting_multiple_controllers?
71
- controller_names.length > 1
72
- end
73
-
74
- # Returns a list of controller names in lower-case from the controller path
75
- def controller_names
76
- Dir.entries(@controller_path).delete_if { |file| file !~ /rb$/ }.collect{ |c| c[0..-4] }
77
- end
78
-
79
- # Returns the class of the controller specified by the <tt>controller_name</tt>
80
- def controller_class(controller_name)
81
- eval(controller_name.capitalize + "Controller")
82
- end
83
-
84
- public
85
-
86
- # Start accepting requests to the defined mount points
87
- def start_server
88
- @server.start
89
- end
90
-
91
- # Stops accepting requests to the defined mount points
92
- def shutdown
93
- @server.shutdown
94
- end
1
+ require 'webrick'
2
+ include WEBrick
3
+
4
+ # Terminology:
5
+ # * Static controller: Is a controller that has all it's show_* and do_* methods mounted by the server
6
+ # at server start, so the server will handle request rejection of invalid requests
7
+ # * Dynamic controller: Is a controller that's mounted with a responsibility to handle all the request mapping
8
+ # itself. Hence, the server will never reject a request that's below the controller in the path.
9
+ class WebControllerServer
10
+ STATIC_MOUNTING = 1
11
+ DYNAMIC_MOUNTING = 2
12
+
13
+ MOUNT_TYPE = DYNAMIC_MOUNTING
14
+
15
+ SERVER_TYPE = (RUBY_PLATFORM =~ /mswin/ ? SimpleServer : Daemon)
16
+
17
+ def WebControllerServer.the_active_server
18
+ @the_active_server
19
+ end
20
+ def WebControllerServer.the_active_server= server
21
+ @the_active_server = server
22
+ end
23
+
24
+ def initialize(port, server_type, controller_path)
25
+ @server = WEBrick::HTTPServer::new(:Port => port, :ServerType => server_type || SERVER_TYPE)
26
+ WebControllerServer::the_active_server = @server
27
+ @server.logger.info "Your WEBrick server is now running on http://localhost:#{port}"
28
+ @controller_path = controller_path
29
+ mount_controllers
30
+ start_server
31
+ end
32
+
33
+ private
34
+ # Mounts all the controllers in the controller_path according to the mount type
35
+ def mount_controllers
36
+ require_controller_files
37
+
38
+ case MOUNT_TYPE
39
+ when STATIC_MOUNTING then controller_names.each { |name| mount_static_controller(name) }
40
+ when DYNAMIC_MOUNTING then controller_names.each { |name| mount_dynamic_controller(name) }
41
+ end
42
+
43
+ @server.mount('/favicon.ico', FavIconHandler)
44
+ end
45
+
46
+ # Mounts the controller specified by <tt>controller_name</tt> to accept all requests below it's path.
47
+ # If more than one controller is mounted by this WebControllerServer, the controller is mounted by name,
48
+ # such that fx WikiController would get the requests of "/wiki/something" and "/wiki/some/thing/else".
49
+ # If only one controller is mounted, all requests to this WebControllerServer is handled by that controller
50
+ def mount_dynamic_controller(controller_name)
51
+ mount_path = mounting_multiple_controllers? ? "/#{controller_name}" : "/"
52
+ @server.mount(mount_path, controller_class(controller_name))
53
+ end
54
+
55
+ # Mount all public show_* and do_* methods as actions tied to the controller specified by <tt>controller_name</tt>.
56
+ # If more than one controller is mounted by this WebControllerServer, the actions are mounted below the controller
57
+ # in the path, such as "/wiki/page" or "/wiki/list". If only one controller is mounted, they're mounted directly on
58
+ # the root, such as "/page" or "/list"
59
+ def mount_static_controller(controller_name)
60
+ controller_class(controller_name).public_instance_methods(false).each { |method|
61
+ mount_path = (mounting_multiple_controllers? ? "/#{controller_name}" : "") + "/#{method}"
62
+ @server.mount(mount_path, controller_class(controller_name))
63
+ }
64
+ end
65
+
66
+ # Requires all the controller files that are present in the controller_path
67
+ def require_controller_files
68
+ controller_names.each { |controller| require @controller_path + controller }
69
+ end
70
+
71
+ # Returns true if more than one controller exists in the controller_path
72
+ def mounting_multiple_controllers?
73
+ controller_names.length > 1
74
+ end
75
+
76
+ # Returns a list of controller names in lower-case from the controller path
77
+ def controller_names
78
+ Dir.entries(@controller_path).delete_if { |file| file !~ /rb$/ }.collect{ |c| c[0..-4] }
79
+ end
80
+
81
+ # Returns the class of the controller specified by the <tt>controller_name</tt>
82
+ def controller_class(controller_name)
83
+ eval(controller_name.capitalize + "Controller")
84
+ end
85
+
86
+ public
87
+
88
+ # Start accepting requests to the defined mount points
89
+ def start_server
90
+ @server.start
91
+ end
92
+
93
+ # Stops accepting requests to the defined mount points
94
+ def shutdown
95
+ @server.shutdown
96
+ end
95
97
  end
data/pimki.rb CHANGED
@@ -9,15 +9,18 @@ end
9
9
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "libraries")
10
10
  begin
11
11
  require 'rubygems'
12
- require_gem 'madeleine'
13
- require_gem 'RedCloth'
12
+ require 'madeleine'
13
+ require 'redcloth'
14
+ require 'bluecloth'
14
15
  require_gem 'rubyzip'
16
+ require 'zip/zip'
15
17
 
16
18
  rescue LoadError => detail
17
19
  # no rubygems, so load from the libraries directory
18
20
  p detail
19
21
  require 'redcloth'
20
22
  require 'bluecloth'
23
+ require 'zip/zip'
21
24
  end
22
25
 
23
26
  ### RedCloth Modifications:
@@ -26,10 +29,48 @@ RedCloth::GLYPHS.delete_if { |glyph| glyph[1] =~ /class=\"caps\"/ }
26
29
  # Fix missing hard_break
27
30
  if RedCloth::VERSION == '3.0.0'
28
31
  class RedCloth #{{{
29
- alias_method :old_clean_white_space, :clean_white_space
30
- def clean_white_space text
31
- old_clean_white_space text
32
- hard_break text
32
+ def to_html( *rules )
33
+ rules = @rules if rules.empty?
34
+ # make our working copy
35
+ text = self.dup
36
+
37
+ @urlrefs = {}
38
+ @shelf = []
39
+ textile_rules = [:refs_textile, :block_textile_table, :block_textile_lists,
40
+ :block_textile_prefix, :inline_textile_image, :inline_textile_link,
41
+ :inline_textile_code, :inline_textile_span, :inline_textile_glyphs]
42
+ markdown_rules = [:refs_markdown, :block_markdown_setext, :block_markdown_atx, :block_markdown_rule,
43
+ :block_markdown_bq, :block_markdown_lists,
44
+ :inline_markdown_reflink, :inline_markdown_link]
45
+ @rules = rules.collect do |rule|
46
+ case rule
47
+ when :markdown
48
+ markdown_rules
49
+ when :textile
50
+ textile_rules
51
+ else
52
+ rule
53
+ end
54
+ end.flatten
55
+
56
+ # standard clean up
57
+ incoming_entities text
58
+ clean_white_space text
59
+
60
+ # start processor
61
+ pre_list = rip_offtags text
62
+ refs text
63
+ blocks text
64
+ inline text
65
+ smooth_offtags text, pre_list
66
+
67
+ retrieve text
68
+ hard_break text # PIMKI: this is the missing bit!
69
+
70
+ text.gsub!( /<\/?notextile>/, '' )
71
+ text.gsub!( /x%x%/, '&#38;' )
72
+ text.strip!
73
+ text
33
74
  end
34
75
  end #}}}
35
76
  else
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.3
2
+ rubygems_version: 0.8.4
3
3
  specification_version: 1
4
4
  name: Pimki
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.3.092
7
- date: 2004-12-26
6
+ version: 1.4.092
7
+ date: 2005-01-16
8
8
  summary: A Personal Information Manager (PIM) based on the Wiki technology of Instiki.
9
9
  require_paths:
10
10
  - libraries
@@ -30,6 +30,7 @@ files:
30
30
  - pimki.rb
31
31
  - README
32
32
  - README-PIMKI
33
+ - favicon.png
33
34
  - "./pimki.rb"
34
35
  - app/controllers
35
36
  - app/models
@@ -99,6 +100,7 @@ files:
99
100
  - app/views/wiki/published.rhtml
100
101
  - app/views/wiki/recently_revised.rhtml
101
102
  - app/views/wiki/revision.rhtml
103
+ - app/views/wiki/rollback.rhtml
102
104
  - app/views/wiki/rss_feed.rhtml
103
105
  - app/views/wiki/search.rhtml
104
106
  - app/views/wiki/tex.rhtml
@@ -120,6 +122,8 @@ files:
120
122
  - libraries/diff/diff_test.rb
121
123
  - libraries/madeleine/automatic.rb
122
124
  - libraries/madeleine/clock.rb
125
+ - libraries/madeleine/files.rb
126
+ - libraries/madeleine/zmarshal.rb
123
127
  test_files: []
124
128
  rdoc_options: []
125
129
  extra_rdoc_files: []
@@ -139,6 +143,16 @@ dependencies:
139
143
  - !ruby/object:Gem::Version
140
144
  version: 3.0.0
141
145
  version:
146
+ - !ruby/object:Gem::Dependency
147
+ name: BlueCloth
148
+ version_requirement:
149
+ version_requirements: !ruby/object:Gem::Version::Requirement
150
+ requirements:
151
+ -
152
+ - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 1.0.0
155
+ version:
142
156
  - !ruby/object:Gem::Dependency
143
157
  name: rubyzip
144
158
  version_requirement:
@@ -157,5 +171,5 @@ dependencies:
157
171
  -
158
172
  - ">="
159
173
  - !ruby/object:Gem::Version
160
- version: 0.6.1
174
+ version: 0.7.1
161
175
  version: