webgen 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -3
- data/Rakefile +6 -45
- data/VERSION +1 -1
- data/lib/webgen/node_finder.rb +6 -1
- data/lib/webgen/path_handler.rb +0 -1
- data/lib/webgen/path_handler/base.rb +3 -2
- data/lib/webgen/path_handler/virtual.rb +1 -0
- data/lib/webgen/version.rb +1 -1
- data/test/webgen/path_handler/test_base.rb +3 -3
- data/test/webgen/path_handler/test_virtual.rb +1 -0
- data/test/webgen/test_node_finder.rb +5 -0
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4549cd7e320897cf555980fefa9d6f11a29c7d73
|
4
|
+
data.tar.gz: 1e5fcd72bc28df47eb681939fe34c562f11fb09e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b30674ab19c718895f896a880b2a3d1c3d1416ab2234b9ccff7abced4cac9ae8aba8d63a8737f60da328e7eedbaa743d5196ca3a5c4e248bfa457bb535b6e09
|
7
|
+
data.tar.gz: 8241e6eecf941a6232d7a0744d4ced310c63d42a11ddecb769ff59488c06512930784e92068ced694a52955fb9a75032a7bdfd5993d9d9a86a593a35a2456cad
|
data/README.md
CHANGED
@@ -10,12 +10,10 @@ extensions.
|
|
10
10
|
|
11
11
|
The author of webgen is Thomas Leitner -- he is reachable at <mailto:t_leitner@gmx.at>.
|
12
12
|
|
13
|
-
You can discuss webgen or find help on the [webgen-users
|
14
|
-
which is mirrored to the [webgen-users Google group].
|
13
|
+
You can discuss webgen or find help on the [webgen-users Google group].
|
15
14
|
|
16
15
|
Or you can join the IRC channel [#webgen] on Freenode.
|
17
16
|
|
18
|
-
[webgen-users]: http://rubyforge.org/pipermail/webgen-users/
|
19
17
|
[webgen-users Google group]: https://groups.google.com/forum/?fromgroups#!forum/webgen-users
|
20
18
|
[#webgen]: irc://chat.freenode.net/#webgen
|
21
19
|
|
data/Rakefile
CHANGED
@@ -5,11 +5,6 @@ require 'rubygems/package_task'
|
|
5
5
|
require 'rdoc/task'
|
6
6
|
require 'rdoc/rdoc'
|
7
7
|
|
8
|
-
begin
|
9
|
-
require 'rubyforge'
|
10
|
-
rescue LoadError
|
11
|
-
end
|
12
|
-
|
13
8
|
require 'fileutils'
|
14
9
|
require 'rake/clean'
|
15
10
|
require 'rake/testtask'
|
@@ -99,7 +94,7 @@ EOF
|
|
99
94
|
|
100
95
|
Thanks for choosing webgen! Here are some places to get you started:
|
101
96
|
* The webgen User Documentation at <http://webgen.gettalong.org/documentation/>
|
102
|
-
* The mailing list archive at <
|
97
|
+
* The mailing list archive at <https://groups.google.com/forum/?fromgroups#!forum/webgen-users>
|
103
98
|
* The webgen Wiki at <http://github.com/gettalong/webgen/wiki>
|
104
99
|
|
105
100
|
Have a look at <http://webgen.gettalong.org/news.html> for a list of changes!
|
@@ -118,7 +113,6 @@ EOF
|
|
118
113
|
s.add_development_dependency('rake', '>= 0.8.3')
|
119
114
|
s.add_development_dependency('minitest', '~> 5.0')
|
120
115
|
s.add_development_dependency('diff-lcs', '~> 1.0')
|
121
|
-
s.add_development_dependency('rubyforge', '~> 2.0')
|
122
116
|
s.add_development_dependency('maruku', '~> 0.7')
|
123
117
|
s.add_development_dependency('RedCloth', '~> 4.1')
|
124
118
|
s.add_development_dependency('haml', '~> 4.0')
|
@@ -146,7 +140,6 @@ EOF
|
|
146
140
|
s.author = 'Thomas Leitner'
|
147
141
|
s.email = 't_leitner@gmx.at'
|
148
142
|
s.homepage = "http://webgen.gettalong.org"
|
149
|
-
s.rubyforge_project = 'webgen'
|
150
143
|
end
|
151
144
|
|
152
145
|
Gem::PackageTask.new(spec) do |pkg|
|
@@ -155,46 +148,14 @@ EOF
|
|
155
148
|
end
|
156
149
|
|
157
150
|
desc 'Release webgen version ' + Webgen::VERSION
|
158
|
-
task :release => [:clobber, :package, :publish_files
|
159
|
-
|
160
|
-
if defined? RubyForge
|
161
|
-
desc "Upload the release to Rubyforge"
|
162
|
-
task :publish_files => [:package] do
|
163
|
-
print 'Uploading files to Rubyforge...'
|
164
|
-
$stdout.flush
|
165
|
-
|
166
|
-
rf = RubyForge.new
|
167
|
-
rf.configure
|
168
|
-
rf.login
|
169
|
-
|
170
|
-
rf.userconfig["release_notes"] = ""
|
171
|
-
rf.userconfig["release_changes"] = ""
|
172
|
-
rf.userconfig["preformatted"] = false
|
173
|
-
|
174
|
-
files = %w[.gem .tgz .zip].collect {|ext| "pkg/webgen-#{Webgen::VERSION}" + ext}
|
151
|
+
task :release => [:clobber, :package, :publish_files]
|
175
152
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
puts 'done'
|
181
|
-
end
|
182
|
-
|
183
|
-
desc 'Post announcement to rubyforge.'
|
184
|
-
task :post_news do
|
185
|
-
print 'Posting announcement to Rubyforge ...'
|
186
|
-
$stdout.flush
|
187
|
-
rf = RubyForge.new
|
188
|
-
rf.configure
|
189
|
-
rf.login
|
190
|
-
|
191
|
-
text = "Have a look at http://webgen.gettalong.org/news.html for the release details!"
|
192
|
-
rf.post_news('webgen', "webgen #{Webgen::VERSION} released", text)
|
193
|
-
puts "done"
|
194
|
-
end
|
153
|
+
desc "Upload the release to rubygems.org"
|
154
|
+
task :publish_files => [:package] do
|
155
|
+
sh "gem push pkg/webgen-#{Webgen::VERSION}.gem"
|
156
|
+
puts 'done'
|
195
157
|
end
|
196
158
|
|
197
|
-
|
198
159
|
desc "Run the tests one by one to check for missing deps"
|
199
160
|
task :test_isolated do
|
200
161
|
files = Dir['test/webgen/**/test_*']
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/lib/webgen/node_finder.rb
CHANGED
@@ -274,7 +274,12 @@ module Webgen
|
|
274
274
|
l
|
275
275
|
end
|
276
276
|
end.uniq
|
277
|
-
|
277
|
+
fallback = langs.delete('fallback')
|
278
|
+
result.nodes.keep_if do |n|
|
279
|
+
langs.any? {|l| n.lang == l} ||
|
280
|
+
(fallback && n.lang == @website.config['website.lang'] &&
|
281
|
+
!n.tree.translations(n).any? {|tn| langs.any? {|l| tn.lang == l}})
|
282
|
+
end
|
278
283
|
end
|
279
284
|
|
280
285
|
def filter_ancestors(result, ref_node, enabled)
|
data/lib/webgen/path_handler.rb
CHANGED
@@ -393,7 +393,6 @@ module Webgen
|
|
393
393
|
vpath = path.dup
|
394
394
|
(mi ||= {})['version'] ||= name
|
395
395
|
vpath.meta_info.merge!(mi)
|
396
|
-
vpath.meta_info['dest_path'] ||= '<parent><basename>(-<version>)(.<lang>)<ext>'
|
397
396
|
@website.logger.debug do
|
398
397
|
"Creating node version '#{vpath['version']}' from path <#{vpath}> with #{handler} handler"
|
399
398
|
end
|
@@ -38,7 +38,7 @@ module Webgen
|
|
38
38
|
# URL.
|
39
39
|
def url
|
40
40
|
node_url = Webgen::Path.url(dest_path, false)
|
41
|
-
node_url.absolute? ? node_url : File.join(tree.website.config['website.base_url'], dest_path)
|
41
|
+
node_url.absolute? ? node_url.to_s : File.join(tree.website.config['website.base_url'], dest_path)
|
42
42
|
end
|
43
43
|
|
44
44
|
# Does exactly the same as Webgen::Node#route_to but also automatically adds the necessary
|
@@ -53,7 +53,7 @@ module Webgen
|
|
53
53
|
# depending on the configuration option 'website.link_to_current_page'.
|
54
54
|
def link_to(*args, &block)
|
55
55
|
result = super
|
56
|
-
if !tree.website.config['website.link_to_current_page']
|
56
|
+
if !tree.website.config['website.link_to_current_page'] && args.first == self
|
57
57
|
result.sub!(/<a/, '<span').sub!(/<\/a>/, '</span>').
|
58
58
|
gsub!(/ (?:href|hreflang)=".*"/, '')
|
59
59
|
end
|
@@ -161,6 +161,7 @@ module Webgen
|
|
161
161
|
# exists, the language part is forced to be in the destination path and the resulting
|
162
162
|
# destination path is returned.
|
163
163
|
def dest_path(parent, path)
|
164
|
+
path.meta_info['dest_path'] ||= '<parent><basename>(-<version>)(.<lang>)<ext>'
|
164
165
|
dpath = construct_dest_path(parent, path, false)
|
165
166
|
if (node = node_exists?(path, dpath)) && node.lang != path.meta_info['lang']
|
166
167
|
dpath = construct_dest_path(parent, path, true)
|
data/lib/webgen/version.rb
CHANGED
@@ -56,8 +56,6 @@ class TestPathHandlerBase < Minitest::Test
|
|
56
56
|
config['website.lang'] = 'en'
|
57
57
|
node = Webgen::Node.new(@website.tree.dummy_root, '/', '/', {:test => :value})
|
58
58
|
|
59
|
-
assert_raises(Webgen::NodeCreationError) { @obj.dest_path(node, Webgen::Path.new('/test')) }
|
60
|
-
|
61
59
|
check_dest_path = lambda do |path, mi, expected, parent = node|
|
62
60
|
assert_equal(expected, @obj.dest_path(parent, Webgen::Path.new(path, mi)))
|
63
61
|
end
|
@@ -156,10 +154,12 @@ class TestPathHandlerBase < Minitest::Test
|
|
156
154
|
@website.config = {'website.base_url' => 'http://example.com/sub', 'website.link_to_current_page' => true}
|
157
155
|
|
158
156
|
assert_equal('http://example.com/sub/somename.html', child_de.url)
|
157
|
+
assert_kind_of(String, child_de.url)
|
159
158
|
|
160
159
|
assert_equal('<a href="somename.html" hreflang="de">Somename</a>', node.link_to(child_de))
|
161
160
|
@website.config['website.link_to_current_page'] = false
|
162
|
-
assert_equal('<
|
161
|
+
assert_equal('<a href="somename.html" hreflang="de">Somename</a>', node.link_to(child_de))
|
162
|
+
assert_equal('<span>Somename</span>', child_de.link_to(child_de))
|
163
163
|
end
|
164
164
|
|
165
165
|
end
|
@@ -87,6 +87,7 @@ EOF
|
|
87
87
|
refute_nil(node_en)
|
88
88
|
refute_nil(@root.tree['/dirnew/dirnew/dirnew/'])
|
89
89
|
|
90
|
+
assert_equal(Webgen::PathHandler::Base::Node, node_de.class)
|
90
91
|
assert_equal('new title', node_en['title'])
|
91
92
|
assert_equal(@time.tv_usec, node_en['modified_at'].tv_usec)
|
92
93
|
assert(node_en['no_output'])
|
@@ -123,12 +123,17 @@ class TestNodeFinder < Minitest::Test
|
|
123
123
|
@nf.find({:absolute_levels => [0,1], :levels => 2}, tree['/dir/']))
|
124
124
|
|
125
125
|
# test filter: langs
|
126
|
+
@config['website.lang'] = 'en'
|
126
127
|
check.call(%w[/file.en.html /other.en.html /dir2/index.en.html],
|
127
128
|
@nf.find({:lang => 'en', :flatten => true}, tree['/dir/']))
|
128
129
|
check.call(%w[/file.en.html /file.de.html /other.en.html /german.de.html /dir2/index.en.html /dir2/index.de.html],
|
129
130
|
@nf.find({:lang => ['en', 'de'], :flatten => true}, tree['/dir/']))
|
130
131
|
check.call(%w[/file.en.html /other.en.html /dir2/index.en.html],
|
131
132
|
@nf.find({:lang => 'node', :flatten => true}, tree['/file.en.html']))
|
133
|
+
check.call(%w[/file.en.html /other.en.html /dir2/index.en.html],
|
134
|
+
@nf.find({:lang => ['en', 'fallback'], :flatten => true}, tree['/file.en.html']))
|
135
|
+
check.call(%w[/file.de.html /other.en.html /german.de.html /dir2/index.de.html],
|
136
|
+
@nf.find({:lang => ['de', 'fallback'], :flatten => true}, tree['/file.en.html']))
|
132
137
|
|
133
138
|
# test filter: ancestors
|
134
139
|
check.call(%w[/ /dir/ /dir/dir/ /dir/dir/file.html],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Leitner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cmdparse
|
@@ -100,20 +100,6 @@ dependencies:
|
|
100
100
|
- - ~>
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '1.0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: rubyforge
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '2.0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - ~>
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '2.0'
|
117
103
|
- !ruby/object:Gem::Dependency
|
118
104
|
name: maruku
|
119
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -490,7 +476,7 @@ post_install_message: |2+
|
|
490
476
|
|
491
477
|
Thanks for choosing webgen! Here are some places to get you started:
|
492
478
|
* The webgen User Documentation at <http://webgen.gettalong.org/documentation/>
|
493
|
-
* The mailing list archive at <
|
479
|
+
* The mailing list archive at <https://groups.google.com/forum/?fromgroups#!forum/webgen-users>
|
494
480
|
* The webgen Wiki at <http://github.com/gettalong/webgen/wiki>
|
495
481
|
|
496
482
|
Have a look at <http://webgen.gettalong.org/news.html> for a list of changes!
|
@@ -514,7 +500,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
514
500
|
- !ruby/object:Gem::Version
|
515
501
|
version: '0'
|
516
502
|
requirements: []
|
517
|
-
rubyforge_project:
|
503
|
+
rubyforge_project:
|
518
504
|
rubygems_version: 2.0.3
|
519
505
|
signing_key:
|
520
506
|
specification_version: 4
|