weneedfeed 0.7.2 → 0.8.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: 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