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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 281a617c58ff1f8bd8c980da4118584c1aeb450d
4
- data.tar.gz: 460e1c111d39d228c7414c79397397376f1e7211
3
+ metadata.gz: f18e9f78a0a42c2249870011353adc16baf05eed
4
+ data.tar.gz: 2d5d4fa65d4d5304e664ba8184744090b3a77e43
5
5
  SHA512:
6
- metadata.gz: f5d08a461de2b6ee699270bd8e2abb65260f234b5f9235ea9d562507d1c27b4219ce5fbcb7a6cac18aa0f6de28598d26561e656a4f2d57dcc885cb2ba1fe79c9
7
- data.tar.gz: e58d4bf0d44a99db8a66940bf7d025ca7ea8f6f8606e3e157356e34183c5f9e03952eb874a22179fd19b9dd59c43ef79139c7934d511d4aec4dd2c60e9ff3e76
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
- - 2.4.1
5
- - 2.3.4
6
- - 2.2.7
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
@@ -5,8 +5,3 @@ machine:
5
5
  test:
6
6
  override:
7
7
  - bundle exec rake test
8
- # check that no crash occurs with earlier version of nokogiri
9
- - echo "gem 'nokogiri', '1.6.1'" >> Gemfile
10
- - bundle update nokogiri
11
- - bundle exec rake test
12
-
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
- encoded_url = Addressable::URI.parse(url).normalize.to_s
181
- result[encoded_url] = url if encoded_url != url
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'].stringify_keys!
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
@@ -1,3 +1,3 @@
1
1
  module Wovnrb
2
- VERSION = "0.2.30"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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", "<= 1.8"
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.2.30
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-01-11 00:00:00.000000000 Z
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: '1.8'
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: '1.8'
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: