weneedfeed 0.11.0 → 0.14.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: 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: []