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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d4bfc07ec09b3fc76791f599dd17fb684011a1578022d3959a9d75ba2dee16f
4
- data.tar.gz: 9108f2c16e46464d0901d9c7856fb8b75bdead5fff144b4167ec816e8124aa6a
3
+ metadata.gz: fa3500ddeba8701a3cc8c7f729fbfef3c61f95050572bc34327c489842c5744d
4
+ data.tar.gz: dd89a38ec4ceed97813e9fc5b73b5df1f1c7568ae0dd6b3ab2e0e6a52d0f7bec
5
5
  SHA512:
6
- metadata.gz: 56781eb12af36d6fe86c62ea13055b42acb422835d000efaa244d212e4a10f649e9395ea21a83ecbac29246c82ecf41f8396cf0f354379ba774abf514a692a8d
7
- data.tar.gz: c41a3cad5280ef1f3a8072b743bb90cc1c1e35f643392c8216ad6c95c551b9ec9bde21eb37cfeab62ebec11eef6cc7beb5fc75a752c25a5f9b68b6f26c85d65e
6
+ metadata.gz: 8e74fb89776dde8f1c7dfb068ddea721a9a9ce6da67d31aa496673e53efcd0993f3deee7452685d643ab73e56ac56fdf42be59aa11413593ee1de326bd219a2c
7
+ data.tar.gz: d9036bccf6f43b8480eb36d7ea3db5dc348e879705e93b92290ea953b04302898caa5cf4a3aea8fda71704291ab0bf1841e3c761873798f72172191f17c57c88
@@ -4,7 +4,7 @@ on:
4
4
  pull_request:
5
5
  push:
6
6
  branches:
7
- - master
7
+ - main
8
8
 
9
9
  jobs:
10
10
  rspec:
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,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
@@ -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,14 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- weneedfeed (0.11.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 [Hash] schema
13
- def initialize(schema:)
14
- @schema = ::Weneedfeed::Schema.new(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
 
@@ -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
- schema: ::YAML.load_file(@schema_path)
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
@@ -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
- schema = ::YAML.load_file(options[:schema_path])
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
- # For faraday_middleware/response_middleware.
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'
@@ -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]
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Weneedfeed
4
- VERSION = '0.11.0'
4
+ VERSION = '0.14.0'
5
5
  end
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.11.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-13 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
@@ -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: []