clwiki 2.1.7 → 2.1.8
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.
- checksums.yaml +4 -4
- data/lib/cl_wiki/file.rb +15 -7
- data/lib/cl_wiki/version.rb +1 -1
- data/test/dummy/log/test.log +78 -0
- data/test/lib/clwiki/file_test.rb +13 -0
- data/test/lib/clwiki/test_base.rb +6 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f84cec3fab1f7ecb7ac62119bbe082fbbb9fe4f0
         | 
| 4 | 
            +
              data.tar.gz: eee6a2eb5655c377bc6e9459474baa14676ea850
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a24293e23531ea25fb1516ce3a5b5271a6bb2312c7aa8f867c3b134180b70be2c45771e548fea4dad77930c0178433f9ee55aa8464d75ffc051a560ef7df0483
         | 
| 7 | 
            +
              data.tar.gz: a98cd414bc6c3d60e9a03d49a005b9f563dc260fde53b123f9a132cdb0496e052e7d324ef94a008bd45e839bf7ad27641f967e12db20a574078a2c8fc6ceab30
         | 
    
        data/lib/cl_wiki/file.rb
    CHANGED
    
    | @@ -7,7 +7,7 @@ $wikiPageExt = '.txt' | |
| 7 7 |  | 
| 8 8 | 
             
            module ClWiki
         | 
| 9 9 | 
             
              class File
         | 
| 10 | 
            -
                attr_reader :name, :fileExt, :wikiRootPath, :pagePath, :modTimeAtLastRead
         | 
| 10 | 
            +
                attr_reader :name, :fileExt, :wikiRootPath, :pagePath, :modTimeAtLastRead, :metadata
         | 
| 11 11 | 
             
                attr_accessor :clientLastReadModTime
         | 
| 12 12 |  | 
| 13 13 | 
             
                def initialize(fullPageName, wikiRootPath, fileExt=$wikiPageExt, autocreate=true)
         | 
| @@ -19,6 +19,7 @@ module ClWiki | |
| 19 19 | 
             
                  @pagePath = '/' if @pagePath == '.'
         | 
| 20 20 | 
             
                  @fileExt = fileExt
         | 
| 21 21 | 
             
                  @metadata = {}
         | 
| 22 | 
            +
                  @metadata_keys = ['mtime']
         | 
| 22 23 | 
             
                  if autocreate
         | 
| 23 24 | 
             
                    if file_exists?
         | 
| 24 25 | 
             
                      readFile
         | 
| @@ -121,25 +122,32 @@ module ClWiki | |
| 121 122 | 
             
                  raw_lines.each_with_index do |ln, index|
         | 
| 122 123 | 
             
                    if ln.chomp.empty?
         | 
| 123 124 | 
             
                      next_line = raw_lines[index+1]
         | 
| 124 | 
            -
                      if  | 
| 125 | 
            -
                        all_lines_are_metadata_lines(raw_lines[0..index-1])
         | 
| 126 | 
            -
             | 
| 125 | 
            +
                      if next_line.nil? || next_line.chomp.empty?
         | 
| 126 | 
            +
                        if all_lines_are_metadata_lines(raw_lines[0..index-1])
         | 
| 127 | 
            +
                          start_index = index + 2
         | 
| 128 | 
            +
                        end
         | 
| 127 129 | 
             
                        break
         | 
| 128 130 | 
             
                      end
         | 
| 129 131 | 
             
                    end
         | 
| 130 132 | 
             
                  end
         | 
| 131 | 
            -
             | 
| 133 | 
            +
             | 
| 134 | 
            +
                  if start_index > 0
         | 
| 135 | 
            +
                    [raw_lines[0..start_index-3], raw_lines[start_index..-1]]
         | 
| 136 | 
            +
                  else
         | 
| 137 | 
            +
                    [[], raw_lines]
         | 
| 138 | 
            +
                  end
         | 
| 132 139 | 
             
                end
         | 
| 133 140 |  | 
| 134 141 | 
             
                def all_lines_are_metadata_lines(lines)
         | 
| 135 | 
            -
                  lines.map { |ln| ln | 
| 142 | 
            +
                  lines.map { |ln| ln.scan(/\A(\w+):?/) }.flatten.
         | 
| 143 | 
            +
                    map { |k| @metadata_keys.include?(k) }.uniq == [true]
         | 
| 136 144 | 
             
                end
         | 
| 137 145 |  | 
| 138 146 | 
             
                def read_metadata(lines)
         | 
| 139 147 | 
             
                  @metadata = {}
         | 
| 140 148 | 
             
                  lines.each do |ln|
         | 
| 141 149 | 
             
                    key, value = ln.split(': ')
         | 
| 142 | 
            -
                    @metadata[key] = value
         | 
| 150 | 
            +
                    @metadata[key] = value if @metadata_keys.include?(key)
         | 
| 143 151 | 
             
                  end
         | 
| 144 152 | 
             
                end
         | 
| 145 153 |  | 
    
        data/lib/cl_wiki/version.rb
    CHANGED
    
    
    
        data/test/dummy/log/test.log
    CHANGED
    
    | @@ -3327,3 +3327,81 @@ Processing by ClWiki::PageController#show as HTML | |
| 3327 3327 | 
             
            Redirected to http://test.host/wiki/FrontPage
         | 
| 3328 3328 | 
             
            Filter chain halted as :redirect_to_front_page_if_bad_name rendered or redirected
         | 
| 3329 3329 | 
             
            Completed 302 Found in 0ms
         | 
| 3330 | 
            +
            Started GET "/wiki/clwikicgi.rb?use_route=cl_wiki&page=%2FChrisMorris&edit=true" for 127.0.0.1 at 2015-09-23 00:10:46 -0500
         | 
| 3331 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3332 | 
            +
              Parameters: {"use_route"=>"cl_wiki", "page"=>"/ChrisMorris", "edit"=>"true"}
         | 
| 3333 | 
            +
            Redirected to http://www.example.com/wiki/ChrisMorris/edit
         | 
| 3334 | 
            +
            Filter chain halted as :redirect_legacy_cgi_urls rendered or redirected
         | 
| 3335 | 
            +
            Completed 301 Moved Permanently in 10ms
         | 
| 3336 | 
            +
            Started GET "/wiki/clwikicgi.rb?use_route=cl_wiki&page=%2FSomeParent%2FDotTest" for 127.0.0.1 at 2015-09-23 00:10:46 -0500
         | 
| 3337 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3338 | 
            +
              Parameters: {"use_route"=>"cl_wiki", "page"=>"/SomeParent/DotTest"}
         | 
| 3339 | 
            +
            Redirected to http://www.example.com/wiki/DotTest
         | 
| 3340 | 
            +
            Filter chain halted as :redirect_legacy_cgi_urls rendered or redirected
         | 
| 3341 | 
            +
            Completed 301 Moved Permanently in 0ms
         | 
| 3342 | 
            +
            Started GET "/wiki/clwikicgi.rb?use_route=cl_wiki&page=ChrisMorris" for 127.0.0.1 at 2015-09-23 00:10:46 -0500
         | 
| 3343 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3344 | 
            +
              Parameters: {"use_route"=>"cl_wiki", "page"=>"ChrisMorris"}
         | 
| 3345 | 
            +
            Redirected to http://www.example.com/wiki/ChrisMorris
         | 
| 3346 | 
            +
            Filter chain halted as :redirect_legacy_cgi_urls rendered or redirected
         | 
| 3347 | 
            +
            Completed 301 Moved Permanently in 0ms
         | 
| 3348 | 
            +
            Started GET "/wiki/clwikicgi.rb?use_route=cl_wiki&page=%2FChrisMorris" for 127.0.0.1 at 2015-09-23 00:10:46 -0500
         | 
| 3349 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3350 | 
            +
              Parameters: {"use_route"=>"cl_wiki", "page"=>"/ChrisMorris"}
         | 
| 3351 | 
            +
            Redirected to http://www.example.com/wiki/ChrisMorris
         | 
| 3352 | 
            +
            Filter chain halted as :redirect_legacy_cgi_urls rendered or redirected
         | 
| 3353 | 
            +
            Completed 301 Moved Permanently in 0ms
         | 
| 3354 | 
            +
            Processing by ClWiki::PageController#recent as RSS
         | 
| 3355 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/recent.rss.builder (0.2ms)
         | 
| 3356 | 
            +
            Completed 200 OK in 15ms (Views: 11.9ms)
         | 
| 3357 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3358 | 
            +
              Parameters: {"page_name"=>"NewPage"}
         | 
| 3359 | 
            +
            Redirected to http://test.host/wiki/FrontPage
         | 
| 3360 | 
            +
            Filter chain halted as :redirect_to_front_page_if_bad_name rendered or redirected
         | 
| 3361 | 
            +
            Completed 302 Found in 1ms
         | 
| 3362 | 
            +
            Processing by ClWiki::PageController#edit as HTML
         | 
| 3363 | 
            +
              Parameters: {"page_name"=>"NewPage"}
         | 
| 3364 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/edit.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3365 | 
            +
            Completed 200 OK in 6ms (Views: 4.7ms)
         | 
| 3366 | 
            +
            Processing by ClWiki::PageController#update as HTML
         | 
| 3367 | 
            +
              Parameters: {"page_content"=>"NewPage content", "client_mod_time"=>"1442985046", "save_and_edit"=>true, "page_name"=>"NewPage"}
         | 
| 3368 | 
            +
            Redirected to http://test.host/wiki/NewPage/edit
         | 
| 3369 | 
            +
            Completed 302 Found in 2ms (Views: 4.7ms)
         | 
| 3370 | 
            +
            Processing by ClWiki::PageController#recent as HTML
         | 
| 3371 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/recent.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3372 | 
            +
            Completed 200 OK in 4ms (Views: 2.0ms)
         | 
| 3373 | 
            +
            Processing by ClWiki::PageController#recent as HTML
         | 
| 3374 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/recent.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3375 | 
            +
            Completed 200 OK in 2ms (Views: 0.8ms)
         | 
| 3376 | 
            +
            Processing by ClWiki::PageController#find as HTML
         | 
| 3377 | 
            +
              Parameters: {"search_text"=>"sheep"}
         | 
| 3378 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/find.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3379 | 
            +
            Completed 200 OK in 3ms (Views: 2.1ms)
         | 
| 3380 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3381 | 
            +
              Parameters: {"page_name"=>"NewPage"}
         | 
| 3382 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/show.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3383 | 
            +
            Completed 200 OK in 4ms (Views: 2.2ms)
         | 
| 3384 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3385 | 
            +
            Redirected to http://test.host/wiki/FrontPage
         | 
| 3386 | 
            +
            Filter chain halted as :redirect_to_front_page_if_bad_name rendered or redirected
         | 
| 3387 | 
            +
            Completed 302 Found in 0ms
         | 
| 3388 | 
            +
            Processing by ClWiki::PageController#find as HTML
         | 
| 3389 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/find.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3390 | 
            +
            Completed 200 OK in 1ms (Views: 0.6ms)
         | 
| 3391 | 
            +
            Processing by ClWiki::PageController#edit as HTML
         | 
| 3392 | 
            +
              Parameters: {"page_name"=>"NewPage"}
         | 
| 3393 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/edit.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3394 | 
            +
            Completed 200 OK in 2ms (Views: 0.8ms)
         | 
| 3395 | 
            +
            Processing by ClWiki::PageController#update as HTML
         | 
| 3396 | 
            +
              Parameters: {"page_content"=>"NewPage content", "client_mod_time"=>"1442985046", "page_name"=>"NewPage"}
         | 
| 3397 | 
            +
            Redirected to http://test.host/wiki/NewPage
         | 
| 3398 | 
            +
            Completed 302 Found in 2ms (Views: 0.8ms)
         | 
| 3399 | 
            +
            Processing by ClWiki::PageController#edit as HTML
         | 
| 3400 | 
            +
              Parameters: {"page_name"=>"NewPage"}
         | 
| 3401 | 
            +
              Rendered /Users/chrismo/modev/clwiki/app/views/cl_wiki/page/edit.html.erb within layouts/cl_wiki/application (0.2ms)
         | 
| 3402 | 
            +
            Completed 200 OK in 2ms (Views: 0.7ms)
         | 
| 3403 | 
            +
            Processing by ClWiki::PageController#show as HTML
         | 
| 3404 | 
            +
              Parameters: {"page_name"=>"notavalidname"}
         | 
| 3405 | 
            +
            Redirected to http://test.host/wiki/FrontPage
         | 
| 3406 | 
            +
            Filter chain halted as :redirect_to_front_page_if_bad_name rendered or redirected
         | 
| 3407 | 
            +
            Completed 302 Found in 0ms
         | 
| @@ -108,5 +108,18 @@ class TestClWikiFile < TestBase | |
| 108 108 | 
             
                end
         | 
| 109 109 | 
             
                wiki_file = ClWiki::File.new("/LegacyPage", @test_wiki_path)
         | 
| 110 110 | 
             
                assert_equal "First line\n\n\nAfter the big break\n", wiki_file.content.join
         | 
| 111 | 
            +
                assert_equal({}, wiki_file.metadata)
         | 
| 112 | 
            +
              end
         | 
| 113 | 
            +
             | 
| 114 | 
            +
              def test_mid_mtime_not_parsed_as_metadata
         | 
| 115 | 
            +
                File.open(File.join(@test_wiki_path, 'LegacyPage.txt'), 'w') do |f|
         | 
| 116 | 
            +
                  f.puts "a"
         | 
| 117 | 
            +
                  f.puts "mtime: 2015-09-22"
         | 
| 118 | 
            +
                  f.puts "\n\n"
         | 
| 119 | 
            +
                  f.puts "b"
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
                wiki_file = ClWiki::File.new("/LegacyPage", @test_wiki_path)
         | 
| 122 | 
            +
                assert_equal "a\nmtime: 2015-09-22\n\n\nb\n", wiki_file.content.join
         | 
| 123 | 
            +
                assert_equal({}, wiki_file.metadata)
         | 
| 111 124 | 
             
              end
         | 
| 112 125 | 
             
            end
         | 
| @@ -15,7 +15,12 @@ class TestBase < TempDirTest | |
| 15 15 | 
             
                $wiki_conf.wiki_path = $wiki_path
         | 
| 16 16 | 
             
                $wiki_conf.useIndex = ClWiki::Configuration::USE_INDEX_NO
         | 
| 17 17 | 
             
              end
         | 
| 18 | 
            -
             | 
| 18 | 
            +
             | 
| 19 | 
            +
              def override_wiki_path(path)
         | 
| 20 | 
            +
                $wiki_path = path
         | 
| 21 | 
            +
                $wiki_conf.wiki_path = path
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 19 24 | 
             
              # to ward off the new Test::Unit detection of classes with no test
         | 
| 20 25 | 
             
              # methods
         | 
| 21 26 | 
             
              def default_test
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: clwiki
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.1. | 
| 4 | 
            +
              version: 2.1.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - chrismo
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-09- | 
| 11 | 
            +
            date: 2015-09-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: clutil
         |