weneedfeed 0.9.2 → 0.12.0

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
  SHA256:
3
- metadata.gz: 42d4185b6423aab2b4120f63152efd3a1f21b22b78caed8c9e8f797f37432853
4
- data.tar.gz: fccbdc509d5e945d1c69db3b8dd5ab266e097e10b8ca19f753037656c411eff8
3
+ metadata.gz: 8df6dfcc585251215fe01c5a985fc9e83c7bf6e706578751e4b5f4e4a38ebc8f
4
+ data.tar.gz: 7287d78034b62dafabedfbfa011c0af18d2c7cf23d605d3c0b0c6dce795062eb
5
5
  SHA512:
6
- metadata.gz: d39391a66a6d38b8c264b2bdda57b1da9d88c9b41acabd81976adde18822e37c2e4e64c1b915ca4e2cf9105e12f2299e34657350237a2cbd026a94f801105189
7
- data.tar.gz: a16bb4796e0254bbd251d6de8885118a385e54b43de2c8851a6122e389ef9bdc22cd8b08c30aa5d0e7f676f8c57c692bb9e8f898f6b88cd3b06a4190785ffd10
6
+ metadata.gz: 6baa16dd012ccdcccc2bf9173e2884295514e70eded457138d1a55f06a951572a6404bc4650268524d3ba1a1191fec00b7a1575d4b77d652753e714f2af61167
7
+ data.tar.gz: 10336f0bb0bbcfe115805b834be4a976ad9256a6e6a4efa54aa0a247092ec3da3ff2b3cb1e72bf260b057ea6a9d82382db508e0a420441fbb09ea32615547727
@@ -4,17 +4,23 @@ on:
4
4
  pull_request:
5
5
  push:
6
6
  branches:
7
- - master
7
+ - main
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/.rubocop.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  require:
2
+ - rubocop-rake
2
3
  - rubocop-rspec
3
4
 
4
5
  AllCops:
data/CHANGELOG.md CHANGED
@@ -7,7 +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.9.2
10
+ ## 0.12.0 - 2022-04-14
11
+
12
+ ### Fixed
13
+
14
+ - Handle incorrect URLs a little better.
15
+
16
+ ## 0.11.0 - 2022-04-13
17
+
18
+ ### Changed
19
+
20
+ - Support invalid link URL and image URL.
21
+
22
+ ## 0.10.0 - 2022-04-13
23
+
24
+ ### Changed
25
+
26
+ - Replace mimemagic with marcel.
27
+
28
+ ### Fixed
29
+
30
+ - Fix error on activesupport 7.
31
+
32
+ ## 0.9.2 - 2020-12-03
11
33
 
12
34
  ### Fixed
13
35
 
data/Gemfile CHANGED
@@ -9,5 +9,6 @@ gem 'rack-test'
9
9
  gem 'rake', '~> 12.0'
10
10
  gem 'rspec'
11
11
  gem 'rubocop'
12
+ gem 'rubocop-rake'
12
13
  gem 'rubocop-rspec'
13
14
  gem 'webmock'
data/Gemfile.lock CHANGED
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- weneedfeed (0.9.2)
4
+ weneedfeed (0.12.0)
5
5
  activesupport
6
+ addressable
6
7
  builder
7
8
  faraday
8
9
  faraday_middleware
9
10
  hibana (>= 0.2)
10
- mimemagic
11
+ marcel
11
12
  nokogiri
12
13
  rack-capture (>= 0.4.0)
13
14
  thor
@@ -15,25 +16,45 @@ PATH
15
16
  GEM
16
17
  remote: https://rubygems.org/
17
18
  specs:
18
- activesupport (6.0.3.4)
19
+ activesupport (7.0.2.3)
19
20
  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)
21
+ i18n (>= 1.6, < 2)
22
+ minitest (>= 5.1)
23
+ tzinfo (~> 2.0)
24
+ addressable (2.8.0)
25
25
  public_suffix (>= 2.0.2, < 5.0)
26
- ast (2.4.1)
26
+ ast (2.4.2)
27
27
  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)
28
+ concurrent-ruby (1.1.10)
29
+ crack (0.4.5)
30
+ rexml
31
+ diff-lcs (1.5.0)
32
+ faraday (1.10.0)
33
+ faraday-em_http (~> 1.0)
34
+ faraday-em_synchrony (~> 1.0)
35
+ faraday-excon (~> 1.1)
36
+ faraday-httpclient (~> 1.0)
37
+ faraday-multipart (~> 1.0)
38
+ faraday-net_http (~> 1.0)
39
+ faraday-net_http_persistent (~> 1.0)
40
+ faraday-patron (~> 1.0)
41
+ faraday-rack (~> 1.0)
42
+ faraday-retry (~> 1.0)
43
+ ruby2_keywords (>= 0.0.4)
44
+ faraday-em_http (1.0.0)
45
+ faraday-em_synchrony (1.0.0)
46
+ faraday-excon (1.1.0)
47
+ faraday-httpclient (1.0.1)
48
+ faraday-multipart (1.0.3)
32
49
  multipart-post (>= 1.2, < 3)
33
- ruby2_keywords
34
- faraday_middleware (1.0.0)
50
+ faraday-net_http (1.0.1)
51
+ faraday-net_http_persistent (1.2.0)
52
+ faraday-patron (1.0.0)
53
+ faraday-rack (1.0.0)
54
+ faraday-retry (1.0.3)
55
+ faraday_middleware (1.2.0)
35
56
  faraday (~> 1.0)
36
- hanami-router (2.0.0.alpha3)
57
+ hanami-router (2.0.0.alpha5)
37
58
  mustermann (~> 1.0)
38
59
  mustermann-contrib (~> 1.0)
39
60
  rack (~> 2.0)
@@ -43,72 +64,73 @@ GEM
43
64
  hanami-router (>= 2.0.0.alpha3)
44
65
  rack
45
66
  tilt
46
- i18n (1.8.5)
67
+ i18n (1.10.0)
47
68
  concurrent-ruby (~> 1.0)
48
- mimemagic (0.3.5)
49
- mini_portile2 (2.4.0)
50
- minitest (5.14.2)
69
+ marcel (1.0.2)
70
+ mini_portile2 (2.8.0)
71
+ minitest (5.15.0)
51
72
  multipart-post (2.1.1)
52
73
  mustermann (1.1.1)
53
74
  ruby2_keywords (~> 0.0.1)
54
75
  mustermann-contrib (1.1.1)
55
76
  hansi (~> 0.2.0)
56
77
  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)
78
+ nokogiri (1.13.4)
79
+ mini_portile2 (~> 2.8.0)
80
+ racc (~> 1.4)
81
+ parallel (1.22.1)
82
+ parser (3.1.2.0)
61
83
  ast (~> 2.4.1)
62
- public_suffix (4.0.6)
84
+ public_suffix (4.0.7)
85
+ racc (1.6.0)
63
86
  rack (2.2.3)
64
87
  rack-capture (0.4.0)
65
88
  rack
66
89
  rack-test (1.1.0)
67
90
  rack (>= 1.0, < 3)
68
- rainbow (3.0.0)
91
+ rainbow (3.1.1)
69
92
  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)
93
+ regexp_parser (2.3.0)
94
+ rexml (3.2.5)
95
+ rspec (3.11.0)
96
+ rspec-core (~> 3.11.0)
97
+ rspec-expectations (~> 3.11.0)
98
+ rspec-mocks (~> 3.11.0)
99
+ rspec-core (3.11.0)
100
+ rspec-support (~> 3.11.0)
101
+ rspec-expectations (3.11.0)
79
102
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.9.0)
81
- rspec-mocks (3.9.1)
103
+ rspec-support (~> 3.11.0)
104
+ rspec-mocks (3.11.1)
82
105
  diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.9.0)
84
- rspec-support (3.9.4)
85
- rubocop (1.4.0)
106
+ rspec-support (~> 3.11.0)
107
+ rspec-support (3.11.0)
108
+ rubocop (1.27.0)
86
109
  parallel (~> 1.10)
87
- parser (>= 2.7.1.5)
110
+ parser (>= 3.1.0.0)
88
111
  rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.8)
112
+ regexp_parser (>= 1.8, < 3.0)
90
113
  rexml
91
- rubocop-ast (>= 1.1.1)
114
+ rubocop-ast (>= 1.16.0, < 2.0)
92
115
  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)
116
+ unicode-display_width (>= 1.4.0, < 3.0)
117
+ rubocop-ast (1.17.0)
118
+ parser (>= 3.1.1.0)
119
+ rubocop-rake (0.6.0)
97
120
  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)
121
+ rubocop-rspec (2.9.0)
122
+ rubocop (~> 1.19)
123
+ ruby-progressbar (1.11.0)
124
+ ruby2_keywords (0.0.5)
125
+ thor (1.2.1)
103
126
  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)
127
+ tzinfo (2.0.4)
128
+ concurrent-ruby (~> 1.0)
129
+ unicode-display_width (2.1.0)
130
+ webmock (3.14.0)
131
+ addressable (>= 2.8.0)
109
132
  crack (>= 0.3.2)
110
133
  hashdiff (>= 0.4.0, < 2.0.0)
111
- zeitwerk (2.4.2)
112
134
 
113
135
  PLATFORMS
114
136
  ruby
@@ -118,9 +140,10 @@ DEPENDENCIES
118
140
  rake (~> 12.0)
119
141
  rspec
120
142
  rubocop
143
+ rubocop-rake
121
144
  rubocop-rspec
122
145
  webmock
123
146
  weneedfeed!
124
147
 
125
148
  BUNDLED WITH
126
- 2.1.4
149
+ 2.2.29
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # To load ActiveSupport::IsolatedExecutionState on activesupport 7.
4
+ # https://github.com/r7kamura/weneedfeed/issues/19
5
+ require 'active_support'
6
+
3
7
  require 'active_support/core_ext/array/conversions'
4
8
  require 'active_support/core_ext/hash/conversions'
5
9
  require 'faraday'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'mimemagic'
4
- require 'uri'
3
+ require 'addressable'
4
+ require 'marcel'
5
5
 
6
6
  module Weneedfeed
7
7
  class Item
@@ -54,8 +54,7 @@ module Weneedfeed
54
54
  def image_mime_type
55
55
  return unless image_url
56
56
 
57
- uri = ::URI.parse(image_url)
58
- ::MimeMagic.by_path(uri.path)&.type
57
+ ::Marcel::Magic.by_path(image_url)&.type
59
58
  end
60
59
 
61
60
  # @return [String, nil]
@@ -75,7 +74,7 @@ module Weneedfeed
75
74
  def image_url
76
75
  return unless image_path_or_url
77
76
 
78
- ::URI.join(
77
+ ::Addressable::URI.join(
79
78
  @url,
80
79
  image_path_or_url
81
80
  ).to_s
@@ -83,7 +82,9 @@ module Weneedfeed
83
82
 
84
83
  # @return [String]
85
84
  def link
86
- ::URI.join(
85
+ return unless link_path_or_url
86
+
87
+ ::Addressable::URI.join(
87
88
  @url,
88
89
  link_path_or_url
89
90
  ).to_s
@@ -97,6 +98,8 @@ module Weneedfeed
97
98
  # @return [String, nil]
98
99
  def link_path_or_url
99
100
  node = link_node
101
+ return unless node
102
+
100
103
  node['href'] || node.inner_text
101
104
  end
102
105
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Weneedfeed
4
- VERSION = '0.9.2'
4
+ VERSION = '0.12.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
@@ -26,11 +28,12 @@ Gem::Specification.new do |spec|
26
28
  spec.require_paths = ['lib']
27
29
 
28
30
  spec.add_runtime_dependency 'activesupport'
31
+ spec.add_runtime_dependency 'addressable'
29
32
  spec.add_runtime_dependency 'builder'
30
33
  spec.add_runtime_dependency 'faraday'
31
34
  spec.add_runtime_dependency 'faraday_middleware'
32
35
  spec.add_runtime_dependency 'hibana', '>= 0.2'
33
- spec.add_runtime_dependency 'mimemagic'
36
+ spec.add_runtime_dependency 'marcel'
34
37
  spec.add_runtime_dependency 'nokogiri'
35
38
  spec.add_runtime_dependency 'rack-capture', '>= 0.4.0'
36
39
  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.2
4
+ version: 0.12.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-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: addressable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: builder
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +95,7 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0.2'
83
97
  - !ruby/object:Gem::Dependency
84
- name: mimemagic
98
+ name: marcel
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - ">="
@@ -186,6 +200,7 @@ licenses:
186
200
  metadata:
187
201
  homepage_uri: https://github.com/r7kamura/weneedfeed
188
202
  source_code_uri: https://github.com/r7kamura/weneedfeed
203
+ rubygems_mfa_required: 'true'
189
204
  post_install_message:
190
205
  rdoc_options: []
191
206
  require_paths:
@@ -201,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
216
  - !ruby/object:Gem::Version
202
217
  version: '0'
203
218
  requirements: []
204
- rubygems_version: 3.1.2
219
+ rubygems_version: 3.1.4
205
220
  signing_key:
206
221
  specification_version: 4
207
222
  summary: Generate feeds from URL and selectors.