clwiki 2.1.7 → 2.1.8

Sign up to get free protection for your applications and to get access to all the features.
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