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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b6e9efc6da1d447b2e24d81b9cb8eb58dbf90550
4
- data.tar.gz: d09c915cf6b3eb903ad05a738827838c5c82a6ee
3
+ metadata.gz: f84cec3fab1f7ecb7ac62119bbe082fbbb9fe4f0
4
+ data.tar.gz: eee6a2eb5655c377bc6e9459474baa14676ea850
5
5
  SHA512:
6
- metadata.gz: 82824c73dbf3efb65f7c4801569d91e4bd9b0780cda350d4f4d7e13106d1bb410af8eea8410f1da8f0ef656793e8c0e4ec9dc3e730cbcfc684cac43382c8401d
7
- data.tar.gz: 0d8aa91d61132b9c52446b0fbb7a777efc10f8e3d5f16b72494c1f0e79c202500eb0b50975aa7337c56851ef9541ea9982fa70a3f57ba319eecec4a933c3cb91
6
+ metadata.gz: a24293e23531ea25fb1516ce3a5b5271a6bb2312c7aa8f867c3b134180b70be2c45771e548fea4dad77930c0178433f9ee55aa8464d75ffc051a560ef7df0483
7
+ data.tar.gz: a98cd414bc6c3d60e9a03d49a005b9f563dc260fde53b123f9a132cdb0496e052e7d324ef94a008bd45e839bf7ad27641f967e12db20a574078a2c8fc6ceab30
@@ -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 (next_line.nil? || next_line.chomp.empty?) &&
125
- all_lines_are_metadata_lines(raw_lines[0..index-1])
126
- start_index = index + 2
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
- [raw_lines[0..start_index-3], raw_lines[start_index..-1]]
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 =~ /\w+: / }.uniq == [0]
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
 
@@ -1,3 +1,3 @@
1
1
  module ClWiki
2
- VERSION = '2.1.7'
2
+ VERSION = '2.1.8'
3
3
  end
@@ -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.7
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-22 00:00:00.000000000 Z
11
+ date: 2015-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clutil