wovnrb 0.2.30 → 1.0.0
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/.travis.yml +8 -5
- data/circle.yml +0 -5
- data/lib/wovnrb/lang.rb +9 -2
- data/lib/wovnrb/store.rb +7 -2
- data/lib/wovnrb/version.rb +1 -1
- data/test/lib/lang_test.rb +10 -0
- data/wovnrb.gemspec +2 -1
- metadata +21 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f18e9f78a0a42c2249870011353adc16baf05eed
|
4
|
+
data.tar.gz: 2d5d4fa65d4d5304e664ba8184744090b3a77e43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2088f60ce143c7ce93f1945a679d845aa2f6f0597b26489a34980158e9e9a1c9cd39f1a815743014cf0a0bb0eba2e7d80afc1477c7e00f4969f9b2f1cbca5820
|
7
|
+
data.tar.gz: 327a2f82d56db2dbbec8e16298f99e1b6d62bdf0dafade734edf43d4fe34c90f259a975491808b7a6b2ab5506aba4c526a7a660db383cbd7dfd877942497c234
|
data/.travis.yml
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
# Supported versions are
|
5
|
+
# > Ruby version:2.2 or later
|
6
|
+
# https://wovn.io/support/ruby-library/
|
7
|
+
- 2.5.0
|
8
|
+
- 2.4.3
|
9
|
+
- 2.3.6
|
10
|
+
- 2.2.9
|
11
|
+
# There is no support for 2.1 officially, but test for now.
|
7
12
|
- 2.1.10
|
8
|
-
- 2.0.0
|
9
|
-
- 1.9.3
|
10
13
|
before_install:
|
11
14
|
- gem update bundler --no-document
|
data/circle.yml
CHANGED
data/lib/wovnrb/lang.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# -*- encoding: UTF-8 -*-
|
2
|
+
|
3
|
+
require 'addressable'
|
4
|
+
|
2
5
|
module Wovnrb
|
3
6
|
class Lang
|
4
7
|
LANG = {
|
@@ -177,8 +180,12 @@ module Wovnrb
|
|
177
180
|
result = {}
|
178
181
|
dom.xpath('//*[@href]').each do |a_tag|
|
179
182
|
url = a_tag['href']
|
180
|
-
|
181
|
-
|
183
|
+
begin
|
184
|
+
encoded_url = Addressable::URI.parse(url).normalize.to_s
|
185
|
+
result[encoded_url] = url if encoded_url != url
|
186
|
+
rescue Addressable::URI::InvalidURIError => e
|
187
|
+
WovnLogger.instance.error("Failed parse url : #{url}#{e.message}")
|
188
|
+
end
|
182
189
|
end
|
183
190
|
result
|
184
191
|
end
|
data/lib/wovnrb/store.rb
CHANGED
@@ -161,7 +161,7 @@ module Wovnrb
|
|
161
161
|
end
|
162
162
|
|
163
163
|
if @settings.has_key?('custom_lang_aliases')
|
164
|
-
@settings['custom_lang_aliases']
|
164
|
+
stringify_keys! @settings['custom_lang_aliases']
|
165
165
|
end
|
166
166
|
|
167
167
|
if wovn_dev_mode? && @settings['api_url'] == Store.default_settings['api_url']
|
@@ -188,6 +188,11 @@ module Wovnrb
|
|
188
188
|
def cleanSettings
|
189
189
|
@settings['ignore_globs'] = []
|
190
190
|
end
|
191
|
-
end
|
192
191
|
|
192
|
+
def stringify_keys!(h)
|
193
|
+
h.keys.each do |k|
|
194
|
+
h[k.to_s] = h.delete(k)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
193
198
|
end
|
data/lib/wovnrb/version.rb
CHANGED
data/test/lib/lang_test.rb
CHANGED
@@ -611,5 +611,15 @@ module Wovnrb
|
|
611
611
|
assert(swapped_body.include?('<a href="http://page.com/ja/#DnE897">decoded invalid path</a>'))
|
612
612
|
assert(swapped_body.include?('<a href="http://page.com/ja/%23DnE897">encoded invalid path</a>'))
|
613
613
|
end
|
614
|
+
|
615
|
+
def test_switch_dom_lang_with_invalid_link
|
616
|
+
lang = Lang.new('en')
|
617
|
+
header = Wovnrb::Headers.new(Wovnrb.get_env('url' => 'http://page.com'), Wovnrb.get_settings)
|
618
|
+
html = '<a href="※ http://invalid.example.com">無効なリンク</a>'
|
619
|
+
dom = Wovnrb.to_dom(html)
|
620
|
+
url = header.url
|
621
|
+
swapped_body = lang.switch_dom_lang(dom, Store.instance, generate_values, url, header)
|
622
|
+
assert(swapped_body.include?('html'))
|
623
|
+
end
|
614
624
|
end
|
615
625
|
end
|
data/wovnrb.gemspec
CHANGED
@@ -26,10 +26,11 @@ Gem::Specification.new do |spec|
|
|
26
26
|
#spec.extensions = spec.files.grep(%r{/extconf\.rb$})
|
27
27
|
|
28
28
|
spec.add_dependency "nokogumbo", ">= 1.3.0"
|
29
|
-
spec.add_dependency "nokogiri", "
|
29
|
+
spec.add_dependency "nokogiri", "~> 1.8.1"
|
30
30
|
spec.add_dependency "activesupport"
|
31
31
|
spec.add_dependency "lz4-ruby"
|
32
32
|
spec.add_dependency "rack"
|
33
|
+
spec.add_dependency "addressable"
|
33
34
|
|
34
35
|
spec.add_development_dependency "bundler", "~> 1.7"
|
35
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wovnrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Sandford
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogumbo
|
@@ -29,16 +29,16 @@ dependencies:
|
|
29
29
|
name: nokogiri
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.8.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 1.8.1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: activesupport
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: addressable
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: bundler
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -423,3 +437,4 @@ test_files:
|
|
423
437
|
- test/lib/wovnrb_test.rb
|
424
438
|
- test/services/url_test.rb
|
425
439
|
- test/test_helper.rb
|
440
|
+
has_rdoc:
|