weneedfeed 0.7.2 → 0.8.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: 2731eafeff7f8a49cd49467cbcdf2dc9b7d156d475d6a6409d9e73ee6fbfd305
4
- data.tar.gz: 65f0569ec54413e9a0b0f44612782804177cb06dbdc9bed0d2054f0a68655cb8
3
+ metadata.gz: a2634d6a72650518bf2845381116e208a65fbb9f067b6e19f58352bb46ecb5ba
4
+ data.tar.gz: 1ccc6647e1a02d34af10460b34d5cd594eb5a184cbe18e2244d45637a38d9d96
5
5
  SHA512:
6
- metadata.gz: 544c38f0a268f66386432b2895133a84c39b68bfcd48e6922fe14f4f543a4260283e8df10c10c788ca999d75cef6d37621dca0e571e33489be6a3ed453e52388
7
- data.tar.gz: bab5629580e689faf7271e0119cc73dce75d4348e844f3a7bcf8e419609a452d5aa55148b5dc9537e25f9be57f5ce6bfb549e7764d19725ef88637452193a35f
6
+ metadata.gz: 18d069fc8460e37e79b67869bd91f64d28f865d052c4464d6f169f811ad32c27698ccad3235f4b7f047160cd68341f56a576701758bb367d9766e9f8d46dc9c3
7
+ data.tar.gz: b4f5e74955365a5184b90ea2ce877b0f548e55da5a9eb55e1f92ad64e66f0426397fb441ccda7d4a678ec5c9acb2b4f782c0185fdbe511139b53087b0e6e0a05
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.8.0 - 2020-11-25
11
+
12
+ ### Added
13
+
14
+ - Add page description for writing channel description.
15
+
16
+ ### Changed
17
+
18
+ - Change channel link content from feeds index URL to page URL.
19
+
10
20
  ## 0.7.2 - 2020-11-25
11
21
 
12
22
  ### Fixed
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- weneedfeed (0.7.2)
4
+ weneedfeed (0.8.0)
5
5
  activesupport
6
6
  builder
7
7
  faraday
data/README.md CHANGED
@@ -34,7 +34,8 @@ You need to write a schema file named with `weneedfeed.yml` to use this gem.
34
34
  ```yaml
35
35
  pages:
36
36
  - id: example1
37
- title: Example feed with CSS Selector
37
+ title: Example 1
38
+ description: Example feed with CSS Selector
38
39
  url: http://example.com/1
39
40
  item_selector: li
40
41
  item_description_selector: p:nth-child(3)
@@ -42,7 +43,8 @@ pages:
42
43
  item_time_selector: time
43
44
  item_title_selector: p:nth-child(2)
44
45
  - id: example2
45
- title: Example feed with XPath
46
+ title: Example 2
47
+ description: Example feed with XPath
46
48
  url: http://example.com/2
47
49
  item_selector: //li
48
50
  item_description_selector: .//p[3]
@@ -56,7 +58,7 @@ pages:
56
58
  Feed ID.
57
59
 
58
60
  - required
59
- - Used for feed URL.
61
+ - Used for feed URL and `<link>` element in `<channel>` element.
60
62
 
61
63
  ### `title`
62
64
 
@@ -65,6 +67,13 @@ Feed title.
65
67
  - required
66
68
  - Used for RSS `<title>` element in `<channel>` element.
67
69
 
70
+ ### `description`
71
+
72
+ Feed description.
73
+
74
+ - optional
75
+ - Used for RSS `<description>` element in `<channel>` element.
76
+
68
77
  ### `url`
69
78
 
70
79
  HTML source URL.
@@ -11,6 +11,7 @@ module Weneedfeed
11
11
  end
12
12
 
13
13
  scraping = ::Weneedfeed::Scraping.new(
14
+ description: page_schema.description,
14
15
  item_description_selector: page_schema.item_description_selector,
15
16
  item_link_selector: page_schema.item_link_selector,
16
17
  item_time_selector: page_schema.item_time_selector,
@@ -2,12 +2,16 @@
2
2
 
3
3
  module Weneedfeed
4
4
  class Page
5
+ # @return [String, nil]
6
+ attr_reader :description
7
+
5
8
  # @return [String]
6
9
  attr_reader :title
7
10
 
8
11
  # @return [String]
9
12
  attr_reader :url
10
13
 
14
+ # @param [String, nil] description
11
15
  # @param [String, nil] item_description_selector
12
16
  # @param [String] item_link_selector
13
17
  # @param [String, nil] item_time_selector
@@ -17,6 +21,7 @@ module Weneedfeed
17
21
  # @param [String] title
18
22
  # @param [String] url
19
23
  def initialize(
24
+ description:,
20
25
  item_description_selector:,
21
26
  item_link_selector:,
22
27
  item_time_selector:,
@@ -26,6 +31,7 @@ module Weneedfeed
26
31
  title:,
27
32
  url:
28
33
  )
34
+ @description = description
29
35
  @item_description_selector = item_description_selector
30
36
  @item_link_selector = item_link_selector
31
37
  @item_time_selector = item_time_selector
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Weneedfeed
4
4
  PageSchema = Struct.new(
5
+ :description,
5
6
  :id,
6
7
  :item_description_selector,
7
8
  :item_link_selector,
@@ -24,6 +24,7 @@ module Weneedfeed
24
24
  def page_schemata
25
25
  @raw['pages'].map do |hash|
26
26
  ::Weneedfeed::PageSchema.new(
27
+ description: hash['description'],
27
28
  id: hash['id'],
28
29
  item_description_selector: hash['item_description_selector'],
29
30
  item_link_selector: hash['item_link_selector'],
@@ -14,6 +14,7 @@ module Weneedfeed
14
14
  end
15
15
  end
16
16
 
17
+ # @param [String, nil] description
17
18
  # @param [String, nil] item_description_selector
18
19
  # @param [String] item_link_selector
19
20
  # @param [String, nil] item_time_selector
@@ -22,6 +23,7 @@ module Weneedfeed
22
23
  # @param [String] title
23
24
  # @param [String] url
24
25
  def initialize(
26
+ description:,
25
27
  item_description_selector:,
26
28
  item_link_selector:,
27
29
  item_time_selector:,
@@ -30,6 +32,7 @@ module Weneedfeed
30
32
  title:,
31
33
  url:
32
34
  )
35
+ @description = description
33
36
  @item_description_selector = item_description_selector
34
37
  @item_link_selector = item_link_selector
35
38
  @item_time_selector = item_time_selector
@@ -42,6 +45,7 @@ module Weneedfeed
42
45
  # @return [Weneedfeed::Page]
43
46
  def call
44
47
  ::Weneedfeed::Page.new(
48
+ description: @description,
45
49
  node: parsed_body,
46
50
  item_description_selector: @item_description_selector,
47
51
  item_selector: @item_selector,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Weneedfeed
4
- VERSION = '0.7.2'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -4,9 +4,9 @@
4
4
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
5
5
  <channel>
6
6
  <title><![CDATA[<%= @page.title %>]]></title>
7
- <link><%= "#{request.base_url}#{top_page_path}" %></link>
7
+ <link><%= "#{@page.url}" %></link>
8
8
  <atom:link href="<%= "#{request.base_url}#{request.path}" %>" rel="self"/>
9
- <description><![CDATA[Recent content on <%= @page.title %>]]></description>
9
+ <description><![CDATA[<%= @page.description %>]]></description>
10
10
  <lastBuildDate><%= Time.now.rfc822 %></lastBuildDate>
11
11
  <% items.each do |item| %>
12
12
  <item>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weneedfeed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura