weneedfeed 0.11.0 → 0.14.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/.github/workflows/test.yml +1 -1
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +18 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +9 -1
- data/lib/weneedfeed/application.rb +3 -3
- data/lib/weneedfeed/capture.rb +1 -7
- data/lib/weneedfeed/command.rb +1 -3
- data/lib/weneedfeed/faraday_response_middleware.rb +1 -2
- data/lib/weneedfeed/item.rb +5 -9
- data/lib/weneedfeed/schema.rb +11 -0
- data/lib/weneedfeed/version.rb +1 -1
- data/weneedfeed.gemspec +2 -0
- metadata +34 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa3500ddeba8701a3cc8c7f729fbfef3c61f95050572bc34327c489842c5744d
|
4
|
+
data.tar.gz: dd89a38ec4ceed97813e9fc5b73b5df1f1c7568ae0dd6b3ab2e0e6a52d0f7bec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e74fb89776dde8f1c7dfb068ddea721a9a9ce6da67d31aa496673e53efcd0993f3deee7452685d643ab73e56ac56fdf42be59aa11413593ee1de326bd219a2c
|
7
|
+
data.tar.gz: d9036bccf6f43b8480eb36d7ea3db5dc348e879705e93b92290ea953b04302898caa5cf4a3aea8fda71704291ab0bf1841e3c761873798f72172191f17c57c88
|
data/.github/workflows/test.yml
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## Unreleased
|
9
9
|
|
10
|
+
## 0.14.0 - 2022-04-14
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- Support YAML aliases (on psych 4.x).
|
15
|
+
|
16
|
+
## 0.13.0 - 2022-04-14
|
17
|
+
|
18
|
+
### Changed
|
19
|
+
|
20
|
+
- Normalize item URLs.
|
21
|
+
|
22
|
+
## 0.12.0 - 2022-04-14
|
23
|
+
|
24
|
+
### Fixed
|
25
|
+
|
26
|
+
- Handle incorrect URLs a little better.
|
27
|
+
|
10
28
|
## 0.11.0 - 2022-04-13
|
11
29
|
|
12
30
|
### Changed
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
weneedfeed (0.
|
4
|
+
weneedfeed (0.14.0)
|
5
5
|
activesupport
|
6
|
+
addressable
|
6
7
|
builder
|
7
8
|
faraday
|
8
9
|
faraday_middleware
|
9
10
|
hibana (>= 0.2)
|
10
11
|
marcel
|
11
12
|
nokogiri
|
13
|
+
psych (>= 4)
|
12
14
|
rack-capture (>= 0.4.0)
|
13
15
|
thor
|
14
16
|
|
@@ -80,6 +82,8 @@ GEM
|
|
80
82
|
parallel (1.22.1)
|
81
83
|
parser (3.1.2.0)
|
82
84
|
ast (~> 2.4.1)
|
85
|
+
psych (4.0.3)
|
86
|
+
stringio
|
83
87
|
public_suffix (4.0.7)
|
84
88
|
racc (1.6.0)
|
85
89
|
rack (2.2.3)
|
@@ -115,10 +119,13 @@ GEM
|
|
115
119
|
unicode-display_width (>= 1.4.0, < 3.0)
|
116
120
|
rubocop-ast (1.17.0)
|
117
121
|
parser (>= 3.1.1.0)
|
122
|
+
rubocop-rake (0.6.0)
|
123
|
+
rubocop (~> 1.0)
|
118
124
|
rubocop-rspec (2.9.0)
|
119
125
|
rubocop (~> 1.19)
|
120
126
|
ruby-progressbar (1.11.0)
|
121
127
|
ruby2_keywords (0.0.5)
|
128
|
+
stringio (3.0.1)
|
122
129
|
thor (1.2.1)
|
123
130
|
tilt (2.0.10)
|
124
131
|
tzinfo (2.0.4)
|
@@ -137,6 +144,7 @@ DEPENDENCIES
|
|
137
144
|
rake (~> 12.0)
|
138
145
|
rspec
|
139
146
|
rubocop
|
147
|
+
rubocop-rake
|
140
148
|
rubocop-rspec
|
141
149
|
webmock
|
142
150
|
weneedfeed!
|
@@ -9,9 +9,9 @@ module Weneedfeed
|
|
9
9
|
get '/feeds/:page_id.xml', to: ::Weneedfeed::Controllers::ShowFeed, as: :feed
|
10
10
|
end
|
11
11
|
|
12
|
-
# @param [
|
13
|
-
def initialize(
|
14
|
-
@schema = ::Weneedfeed::Schema.
|
12
|
+
# @param [String] schema_path
|
13
|
+
def initialize(schema_path:)
|
14
|
+
@schema = ::Weneedfeed::Schema.load_file(schema_path)
|
15
15
|
super()
|
16
16
|
end
|
17
17
|
|
data/lib/weneedfeed/capture.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rack/capture'
|
4
|
-
require 'yaml'
|
5
4
|
|
6
5
|
module Weneedfeed
|
7
6
|
class Capture
|
@@ -44,7 +43,7 @@ module Weneedfeed
|
|
44
43
|
# @return [Weneedfeed::Application]
|
45
44
|
def app
|
46
45
|
@app ||= ::Weneedfeed::Application.new(
|
47
|
-
|
46
|
+
schema_path: @schema_path
|
48
47
|
)
|
49
48
|
end
|
50
49
|
|
@@ -53,11 +52,6 @@ module Weneedfeed
|
|
53
52
|
@base_uri ||= ::URI.parse(@base_url)
|
54
53
|
end
|
55
54
|
|
56
|
-
# @return [Hash]
|
57
|
-
def schema
|
58
|
-
::YAML.load_file(@schema_path)
|
59
|
-
end
|
60
|
-
|
61
55
|
# @return [String]
|
62
56
|
def script_name
|
63
57
|
case base_uri.path
|
data/lib/weneedfeed/command.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'rack'
|
4
4
|
require 'thor'
|
5
|
-
require 'yaml'
|
6
5
|
|
7
6
|
module Weneedfeed
|
8
7
|
class Command < ::Thor
|
@@ -55,8 +54,7 @@ module Weneedfeed
|
|
55
54
|
)
|
56
55
|
|
57
56
|
def server
|
58
|
-
|
59
|
-
application = Weneedfeed::Application.new(schema: schema)
|
57
|
+
application = Weneedfeed::Application.new(schema_path: options[:schema_path])
|
60
58
|
::Rack::Handler.default.run(application)
|
61
59
|
end
|
62
60
|
end
|
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
3
|
+
# To load ActiveSupport::IsolatedExecutionState on activesupport 7.
|
4
4
|
# https://github.com/r7kamura/weneedfeed/issues/19
|
5
5
|
require 'active_support'
|
6
|
-
require 'active_support/isolated_execution_state' if ActiveSupport.gem_version >= Gem::Version.new('7')
|
7
6
|
|
8
7
|
require 'active_support/core_ext/array/conversions'
|
9
8
|
require 'active_support/core_ext/hash/conversions'
|
data/lib/weneedfeed/item.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
3
4
|
require 'marcel'
|
4
|
-
require 'uri'
|
5
5
|
|
6
6
|
module Weneedfeed
|
7
7
|
class Item
|
@@ -74,24 +74,20 @@ module Weneedfeed
|
|
74
74
|
def image_url
|
75
75
|
return unless image_path_or_url
|
76
76
|
|
77
|
-
::URI.join(
|
77
|
+
::Addressable::URI.join(
|
78
78
|
@url,
|
79
79
|
image_path_or_url
|
80
|
-
).to_s
|
81
|
-
rescue ::URI::InvalidURIError
|
82
|
-
"#{@url}#{image_path_or_url}"
|
80
|
+
).normalize.to_s
|
83
81
|
end
|
84
82
|
|
85
83
|
# @return [String]
|
86
84
|
def link
|
87
85
|
return unless link_path_or_url
|
88
86
|
|
89
|
-
::URI.join(
|
87
|
+
::Addressable::URI.join(
|
90
88
|
@url,
|
91
89
|
link_path_or_url
|
92
|
-
).to_s
|
93
|
-
rescue ::URI::InvalidURIError
|
94
|
-
"#{@url}#{link_path_or_url}"
|
90
|
+
).normalize.to_s
|
95
91
|
end
|
96
92
|
|
97
93
|
# @return [Nokogiri::Node, nil]
|
data/lib/weneedfeed/schema.rb
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'yaml'
|
4
|
+
|
3
5
|
module Weneedfeed
|
4
6
|
class Schema
|
7
|
+
class << self
|
8
|
+
# @param [String] schema_path
|
9
|
+
# @return [Weneedfeed::Schema]
|
10
|
+
def load_file(schema_path)
|
11
|
+
raw = ::YAML.load_file(schema_path, aliases: true)
|
12
|
+
new(raw)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
5
16
|
# @param [Hash] raw
|
6
17
|
def initialize(raw)
|
7
18
|
@raw = raw
|
data/lib/weneedfeed/version.rb
CHANGED
data/weneedfeed.gemspec
CHANGED
@@ -28,12 +28,14 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
|
30
30
|
spec.add_runtime_dependency 'activesupport'
|
31
|
+
spec.add_runtime_dependency 'addressable'
|
31
32
|
spec.add_runtime_dependency 'builder'
|
32
33
|
spec.add_runtime_dependency 'faraday'
|
33
34
|
spec.add_runtime_dependency 'faraday_middleware'
|
34
35
|
spec.add_runtime_dependency 'hibana', '>= 0.2'
|
35
36
|
spec.add_runtime_dependency 'marcel'
|
36
37
|
spec.add_runtime_dependency 'nokogiri'
|
38
|
+
spec.add_runtime_dependency 'psych', '>= 4'
|
37
39
|
spec.add_runtime_dependency 'rack-capture', '>= 0.4.0'
|
38
40
|
spec.add_runtime_dependency 'thor'
|
39
41
|
end
|
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.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
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
|
@@ -108,6 +122,20 @@ dependencies:
|
|
108
122
|
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: psych
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
name: rack-capture
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,7 +164,7 @@ dependencies:
|
|
136
164
|
- - ">="
|
137
165
|
- !ruby/object:Gem::Version
|
138
166
|
version: '0'
|
139
|
-
description:
|
167
|
+
description:
|
140
168
|
email:
|
141
169
|
- r7kamura@gmail.com
|
142
170
|
executables:
|
@@ -187,7 +215,7 @@ metadata:
|
|
187
215
|
homepage_uri: https://github.com/r7kamura/weneedfeed
|
188
216
|
source_code_uri: https://github.com/r7kamura/weneedfeed
|
189
217
|
rubygems_mfa_required: 'true'
|
190
|
-
post_install_message:
|
218
|
+
post_install_message:
|
191
219
|
rdoc_options: []
|
192
220
|
require_paths:
|
193
221
|
- lib
|
@@ -203,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
231
|
version: '0'
|
204
232
|
requirements: []
|
205
233
|
rubygems_version: 3.1.4
|
206
|
-
signing_key:
|
234
|
+
signing_key:
|
207
235
|
specification_version: 4
|
208
236
|
summary: Generate feeds from URL and selectors.
|
209
237
|
test_files: []
|