weneedfeed 0.9.1 → 0.11.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
  SHA256:
3
- metadata.gz: 7aeb8844141a877a1c8e17c1aa1549d030a9384d1fbc01219a75a45891823830
4
- data.tar.gz: e707d7fdec8299c0b5cf76c0628ab58a5e8b1c1aec443fe2cc00524671df68b5
3
+ metadata.gz: 9d4bfc07ec09b3fc76791f599dd17fb684011a1578022d3959a9d75ba2dee16f
4
+ data.tar.gz: 9108f2c16e46464d0901d9c7856fb8b75bdead5fff144b4167ec816e8124aa6a
5
5
  SHA512:
6
- metadata.gz: a3db194daf276a2abff61e6c7a92cc137404b6bfb640df7db77a770316e4f10f6cc57b72172bcdda94eceb1b4db726bfc0547719452d097dd33d320394e7f6ea
7
- data.tar.gz: 14cfe2f49aa515f396d4ae598bb07eaeab91cec57d1f5201e68d04770bb6d762b86e346700030a0f7fdd2b9fd57b81e64ff3982c03bdbb34b02e73f34a83f03f
6
+ metadata.gz: 56781eb12af36d6fe86c62ea13055b42acb422835d000efaa244d212e4a10f649e9395ea21a83ecbac29246c82ecf41f8396cf0f354379ba774abf514a692a8d
7
+ data.tar.gz: c41a3cad5280ef1f3a8072b743bb90cc1c1e35f643392c8216ad6c95c551b9ec9bde21eb37cfeab62ebec11eef6cc7beb5fc75a752c25a5f9b68b6f26c85d65e
@@ -8,13 +8,19 @@ on:
8
8
 
9
9
  jobs:
10
10
  rspec:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby:
15
+ - 2.7.2
16
+ - 3.0.2
11
17
  runs-on: ubuntu-20.04
12
18
  steps:
13
19
  - uses: actions/checkout@v2
14
20
  - uses: ruby/setup-ruby@v1
15
21
  with:
16
22
  bundler-cache: true
17
- ruby-version: 2.7.2
23
+ ruby-version: ${{ matrix.ruby }}
18
24
  - run: bundle exec rspec --force-color
19
25
  rubocop:
20
26
  runs-on: ubuntu-20.04
data/CHANGELOG.md CHANGED
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.11.0 - 2022-04-13
11
+
12
+ ### Changed
13
+
14
+ - Support invalid link URL and image URL.
15
+
16
+ ## 0.10.0 - 2022-04-13
17
+
18
+ ### Changed
19
+
20
+ - Replace mimemagic with marcel.
21
+
22
+ ### Fixed
23
+
24
+ - Fix error on activesupport 7.
25
+
26
+ ## 0.9.2 - 2020-12-03
27
+
28
+ ### Fixed
29
+
30
+ - Fix item image URL on JSON source.
31
+ - Fix item image MIME type detection.
32
+
10
33
  ## 0.9.1 - 2020-12-03
11
34
 
12
35
  ### Fixed
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- weneedfeed (0.9.1)
4
+ weneedfeed (0.11.0)
5
5
  activesupport
6
6
  builder
7
7
  faraday
8
8
  faraday_middleware
9
9
  hibana (>= 0.2)
10
- mimemagic
10
+ marcel
11
11
  nokogiri
12
12
  rack-capture (>= 0.4.0)
13
13
  thor
@@ -15,25 +15,45 @@ PATH
15
15
  GEM
16
16
  remote: https://rubygems.org/
17
17
  specs:
18
- activesupport (6.0.3.4)
18
+ activesupport (7.0.2.3)
19
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
20
- i18n (>= 0.7, < 2)
21
- minitest (~> 5.1)
22
- tzinfo (~> 1.1)
23
- zeitwerk (~> 2.2, >= 2.2.2)
24
- addressable (2.7.0)
20
+ i18n (>= 1.6, < 2)
21
+ minitest (>= 5.1)
22
+ tzinfo (~> 2.0)
23
+ addressable (2.8.0)
25
24
  public_suffix (>= 2.0.2, < 5.0)
26
- ast (2.4.1)
25
+ ast (2.4.2)
27
26
  builder (3.2.4)
28
- concurrent-ruby (1.1.7)
29
- crack (0.4.4)
30
- diff-lcs (1.4.4)
31
- faraday (1.1.0)
27
+ concurrent-ruby (1.1.10)
28
+ crack (0.4.5)
29
+ rexml
30
+ diff-lcs (1.5.0)
31
+ faraday (1.10.0)
32
+ faraday-em_http (~> 1.0)
33
+ faraday-em_synchrony (~> 1.0)
34
+ faraday-excon (~> 1.1)
35
+ faraday-httpclient (~> 1.0)
36
+ faraday-multipart (~> 1.0)
37
+ faraday-net_http (~> 1.0)
38
+ faraday-net_http_persistent (~> 1.0)
39
+ faraday-patron (~> 1.0)
40
+ faraday-rack (~> 1.0)
41
+ faraday-retry (~> 1.0)
42
+ ruby2_keywords (>= 0.0.4)
43
+ faraday-em_http (1.0.0)
44
+ faraday-em_synchrony (1.0.0)
45
+ faraday-excon (1.1.0)
46
+ faraday-httpclient (1.0.1)
47
+ faraday-multipart (1.0.3)
32
48
  multipart-post (>= 1.2, < 3)
33
- ruby2_keywords
34
- faraday_middleware (1.0.0)
49
+ faraday-net_http (1.0.1)
50
+ faraday-net_http_persistent (1.2.0)
51
+ faraday-patron (1.0.0)
52
+ faraday-rack (1.0.0)
53
+ faraday-retry (1.0.3)
54
+ faraday_middleware (1.2.0)
35
55
  faraday (~> 1.0)
36
- hanami-router (2.0.0.alpha3)
56
+ hanami-router (2.0.0.alpha5)
37
57
  mustermann (~> 1.0)
38
58
  mustermann-contrib (~> 1.0)
39
59
  rack (~> 2.0)
@@ -43,72 +63,71 @@ GEM
43
63
  hanami-router (>= 2.0.0.alpha3)
44
64
  rack
45
65
  tilt
46
- i18n (1.8.5)
66
+ i18n (1.10.0)
47
67
  concurrent-ruby (~> 1.0)
48
- mimemagic (0.3.5)
49
- mini_portile2 (2.4.0)
50
- minitest (5.14.2)
68
+ marcel (1.0.2)
69
+ mini_portile2 (2.8.0)
70
+ minitest (5.15.0)
51
71
  multipart-post (2.1.1)
52
72
  mustermann (1.1.1)
53
73
  ruby2_keywords (~> 0.0.1)
54
74
  mustermann-contrib (1.1.1)
55
75
  hansi (~> 0.2.0)
56
76
  mustermann (= 1.1.1)
57
- nokogiri (1.10.10)
58
- mini_portile2 (~> 2.4.0)
59
- parallel (1.20.1)
60
- parser (2.7.2.0)
77
+ nokogiri (1.13.4)
78
+ mini_portile2 (~> 2.8.0)
79
+ racc (~> 1.4)
80
+ parallel (1.22.1)
81
+ parser (3.1.2.0)
61
82
  ast (~> 2.4.1)
62
- public_suffix (4.0.6)
83
+ public_suffix (4.0.7)
84
+ racc (1.6.0)
63
85
  rack (2.2.3)
64
86
  rack-capture (0.4.0)
65
87
  rack
66
88
  rack-test (1.1.0)
67
89
  rack (>= 1.0, < 3)
68
- rainbow (3.0.0)
90
+ rainbow (3.1.1)
69
91
  rake (12.3.3)
70
- regexp_parser (1.8.2)
71
- rexml (3.2.4)
72
- rspec (3.9.0)
73
- rspec-core (~> 3.9.0)
74
- rspec-expectations (~> 3.9.0)
75
- rspec-mocks (~> 3.9.0)
76
- rspec-core (3.9.3)
77
- rspec-support (~> 3.9.3)
78
- rspec-expectations (3.9.3)
92
+ regexp_parser (2.3.0)
93
+ rexml (3.2.5)
94
+ rspec (3.11.0)
95
+ rspec-core (~> 3.11.0)
96
+ rspec-expectations (~> 3.11.0)
97
+ rspec-mocks (~> 3.11.0)
98
+ rspec-core (3.11.0)
99
+ rspec-support (~> 3.11.0)
100
+ rspec-expectations (3.11.0)
79
101
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.9.0)
81
- rspec-mocks (3.9.1)
102
+ rspec-support (~> 3.11.0)
103
+ rspec-mocks (3.11.1)
82
104
  diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.9.0)
84
- rspec-support (3.9.4)
85
- rubocop (1.4.0)
105
+ rspec-support (~> 3.11.0)
106
+ rspec-support (3.11.0)
107
+ rubocop (1.27.0)
86
108
  parallel (~> 1.10)
87
- parser (>= 2.7.1.5)
109
+ parser (>= 3.1.0.0)
88
110
  rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.8)
111
+ regexp_parser (>= 1.8, < 3.0)
90
112
  rexml
91
- rubocop-ast (>= 1.1.1)
113
+ rubocop-ast (>= 1.16.0, < 2.0)
92
114
  ruby-progressbar (~> 1.7)
93
- unicode-display_width (>= 1.4.0, < 2.0)
94
- rubocop-ast (1.1.1)
95
- parser (>= 2.7.1.5)
96
- rubocop-rspec (2.0.0)
97
- rubocop (~> 1.0)
98
- rubocop-ast (>= 1.1.0)
99
- ruby-progressbar (1.10.1)
100
- ruby2_keywords (0.0.2)
101
- thor (1.0.1)
102
- thread_safe (0.3.6)
115
+ unicode-display_width (>= 1.4.0, < 3.0)
116
+ rubocop-ast (1.17.0)
117
+ parser (>= 3.1.1.0)
118
+ rubocop-rspec (2.9.0)
119
+ rubocop (~> 1.19)
120
+ ruby-progressbar (1.11.0)
121
+ ruby2_keywords (0.0.5)
122
+ thor (1.2.1)
103
123
  tilt (2.0.10)
104
- tzinfo (1.2.8)
105
- thread_safe (~> 0.1)
106
- unicode-display_width (1.7.0)
107
- webmock (3.9.3)
108
- addressable (>= 2.3.6)
124
+ tzinfo (2.0.4)
125
+ concurrent-ruby (~> 1.0)
126
+ unicode-display_width (2.1.0)
127
+ webmock (3.14.0)
128
+ addressable (>= 2.8.0)
109
129
  crack (>= 0.3.2)
110
130
  hashdiff (>= 0.4.0, < 2.0.0)
111
- zeitwerk (2.4.2)
112
131
 
113
132
  PLATFORMS
114
133
  ruby
@@ -123,4 +142,4 @@ DEPENDENCIES
123
142
  weneedfeed!
124
143
 
125
144
  BUNDLED WITH
126
- 2.1.4
145
+ 2.2.29
@@ -1,5 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # For faraday_middleware/response_middleware.
4
+ # https://github.com/r7kamura/weneedfeed/issues/19
5
+ require 'active_support'
6
+ require 'active_support/isolated_execution_state' if ActiveSupport.gem_version >= Gem::Version.new('7')
7
+
3
8
  require 'active_support/core_ext/array/conversions'
4
9
  require 'active_support/core_ext/hash/conversions'
5
10
  require 'faraday'
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'mimemagic'
3
+ require 'marcel'
4
+ require 'uri'
4
5
 
5
6
  module Weneedfeed
6
7
  class Item
@@ -53,14 +54,21 @@ module Weneedfeed
53
54
  def image_mime_type
54
55
  return unless image_url
55
56
 
56
- ::MimeMagic.by_path(image_url)&.type
57
+ ::Marcel::Magic.by_path(image_url)&.type
57
58
  end
58
59
 
59
60
  # @return [String, nil]
60
61
  def image_path_or_url
61
62
  return unless @image_selector
62
63
 
63
- @node.at(@image_selector)&.[]('src')
64
+ node = @node.at(@image_selector)
65
+ return unless node
66
+
67
+ if node.name == 'img'
68
+ node['src']
69
+ else
70
+ node.content
71
+ end
64
72
  end
65
73
 
66
74
  def image_url
@@ -70,14 +78,20 @@ module Weneedfeed
70
78
  @url,
71
79
  image_path_or_url
72
80
  ).to_s
81
+ rescue ::URI::InvalidURIError
82
+ "#{@url}#{image_path_or_url}"
73
83
  end
74
84
 
75
85
  # @return [String]
76
86
  def link
87
+ return unless link_path_or_url
88
+
77
89
  ::URI.join(
78
90
  @url,
79
91
  link_path_or_url
80
92
  ).to_s
93
+ rescue ::URI::InvalidURIError
94
+ "#{@url}#{link_path_or_url}"
81
95
  end
82
96
 
83
97
  # @return [Nokogiri::Node, nil]
@@ -88,6 +102,8 @@ module Weneedfeed
88
102
  # @return [String, nil]
89
103
  def link_path_or_url
90
104
  node = link_node
105
+ return unless node
106
+
91
107
  node['href'] || node.inner_text
92
108
  end
93
109
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Weneedfeed
4
- VERSION = '0.9.1'
4
+ VERSION = '0.11.0'
5
5
  end
data/weneedfeed.gemspec CHANGED
@@ -16,6 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata['homepage_uri'] = spec.homepage
17
17
  spec.metadata['source_code_uri'] = spec.homepage
18
18
 
19
+ spec.metadata['rubygems_mfa_required'] = 'true'
20
+
19
21
  # Specify which files should be added to the gem when it is released.
20
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
23
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -30,7 +32,7 @@ Gem::Specification.new do |spec|
30
32
  spec.add_runtime_dependency 'faraday'
31
33
  spec.add_runtime_dependency 'faraday_middleware'
32
34
  spec.add_runtime_dependency 'hibana', '>= 0.2'
33
- spec.add_runtime_dependency 'mimemagic'
35
+ spec.add_runtime_dependency 'marcel'
34
36
  spec.add_runtime_dependency 'nokogiri'
35
37
  spec.add_runtime_dependency 'rack-capture', '>= 0.4.0'
36
38
  spec.add_runtime_dependency 'thor'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weneedfeed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-02 00:00:00.000000000 Z
11
+ date: 2022-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.2'
83
83
  - !ruby/object:Gem::Dependency
84
- name: mimemagic
84
+ name: marcel
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -186,6 +186,7 @@ licenses:
186
186
  metadata:
187
187
  homepage_uri: https://github.com/r7kamura/weneedfeed
188
188
  source_code_uri: https://github.com/r7kamura/weneedfeed
189
+ rubygems_mfa_required: 'true'
189
190
  post_install_message:
190
191
  rdoc_options: []
191
192
  require_paths:
@@ -201,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
202
  - !ruby/object:Gem::Version
202
203
  version: '0'
203
204
  requirements: []
204
- rubygems_version: 3.1.2
205
+ rubygems_version: 3.1.4
205
206
  signing_key:
206
207
  specification_version: 4
207
208
  summary: Generate feeds from URL and selectors.