feedjira 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/feed-parsing.md +15 -0
  3. data/.rubocop.yml +19 -627
  4. data/.rubocop_todo.yml +4 -29
  5. data/.travis.yml +0 -1
  6. data/CHANGELOG.md +5 -0
  7. data/Gemfile +4 -2
  8. data/Rakefile +3 -1
  9. data/feedjira.gemspec +6 -10
  10. data/lib/feedjira.rb +4 -3
  11. data/lib/feedjira/configuration.rb +5 -3
  12. data/lib/feedjira/core_ext.rb +2 -0
  13. data/lib/feedjira/core_ext/date.rb +3 -1
  14. data/lib/feedjira/core_ext/string.rb +2 -0
  15. data/lib/feedjira/core_ext/time.rb +2 -0
  16. data/lib/feedjira/date_time_utilities.rb +8 -8
  17. data/lib/feedjira/date_time_utilities/date_time_epoch_parser.rb +3 -0
  18. data/lib/feedjira/date_time_utilities/date_time_language_parser.rb +4 -2
  19. data/lib/feedjira/date_time_utilities/date_time_pattern_parser.rb +9 -9
  20. data/lib/feedjira/feed.rb +2 -0
  21. data/lib/feedjira/feed_entry_utilities.rb +5 -3
  22. data/lib/feedjira/feed_utilities.rb +5 -2
  23. data/lib/feedjira/parser.rb +2 -0
  24. data/lib/feedjira/parser/atom.rb +3 -1
  25. data/lib/feedjira/parser/atom_entry.rb +2 -0
  26. data/lib/feedjira/parser/atom_feed_burner.rb +4 -2
  27. data/lib/feedjira/parser/atom_feed_burner_entry.rb +2 -2
  28. data/lib/feedjira/parser/atom_google_alerts.rb +3 -1
  29. data/lib/feedjira/parser/atom_google_alerts_entry.rb +6 -5
  30. data/lib/feedjira/parser/atom_youtube.rb +2 -0
  31. data/lib/feedjira/parser/atom_youtube_entry.rb +2 -0
  32. data/lib/feedjira/parser/globally_unique_identifier.rb +2 -0
  33. data/lib/feedjira/parser/google_docs_atom.rb +4 -2
  34. data/lib/feedjira/parser/google_docs_atom_entry.rb +2 -0
  35. data/lib/feedjira/parser/itunes_rss.rb +4 -2
  36. data/lib/feedjira/parser/itunes_rss_category.rb +2 -0
  37. data/lib/feedjira/parser/itunes_rss_item.rb +3 -1
  38. data/lib/feedjira/parser/itunes_rss_owner.rb +2 -0
  39. data/lib/feedjira/parser/json_feed.rb +4 -2
  40. data/lib/feedjira/parser/json_feed_item.rb +7 -1
  41. data/lib/feedjira/parser/podlove_chapter.rb +3 -0
  42. data/lib/feedjira/parser/rss.rb +4 -1
  43. data/lib/feedjira/parser/rss_entry.rb +2 -0
  44. data/lib/feedjira/parser/rss_feed_burner.rb +3 -1
  45. data/lib/feedjira/parser/rss_feed_burner_entry.rb +2 -2
  46. data/lib/feedjira/parser/rss_image.rb +2 -0
  47. data/lib/feedjira/preprocessor.rb +3 -1
  48. data/lib/feedjira/rss_entry_utilities.rb +6 -2
  49. data/lib/feedjira/version.rb +3 -1
  50. data/spec/feedjira/configuration_spec.rb +2 -0
  51. data/spec/feedjira/date_time_utilities_spec.rb +2 -0
  52. data/spec/feedjira/feed_entry_utilities_spec.rb +4 -2
  53. data/spec/feedjira/feed_spec.rb +2 -0
  54. data/spec/feedjira/feed_utilities_spec.rb +5 -3
  55. data/spec/feedjira/parser/atom_entry_spec.rb +6 -4
  56. data/spec/feedjira/parser/atom_feed_burner_entry_spec.rb +7 -5
  57. data/spec/feedjira/parser/atom_feed_burner_spec.rb +4 -2
  58. data/spec/feedjira/parser/atom_google_alerts_entry_spec.rb +6 -4
  59. data/spec/feedjira/parser/atom_google_alerts_spec.rb +2 -0
  60. data/spec/feedjira/parser/atom_spec.rb +9 -7
  61. data/spec/feedjira/parser/atom_youtube_entry_spec.rb +6 -4
  62. data/spec/feedjira/parser/atom_youtube_spec.rb +6 -4
  63. data/spec/feedjira/parser/google_docs_atom_entry_spec.rb +2 -0
  64. data/spec/feedjira/parser/google_docs_atom_spec.rb +2 -0
  65. data/spec/feedjira/parser/itunes_rss_item_spec.rb +3 -1
  66. data/spec/feedjira/parser/itunes_rss_owner_spec.rb +2 -0
  67. data/spec/feedjira/parser/itunes_rss_spec.rb +11 -9
  68. data/spec/feedjira/parser/json_feed_item_spec.rb +5 -3
  69. data/spec/feedjira/parser/json_feed_spec.rb +2 -0
  70. data/spec/feedjira/parser/podlove_chapter_spec.rb +2 -0
  71. data/spec/feedjira/parser/rss_entry_spec.rb +6 -4
  72. data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +9 -7
  73. data/spec/feedjira/parser/rss_feed_burner_spec.rb +3 -1
  74. data/spec/feedjira/parser/rss_spec.rb +2 -0
  75. data/spec/feedjira/preprocessor_spec.rb +4 -2
  76. data/spec/feedjira_spec.rb +11 -0
  77. data/spec/sample_feeds.rb +4 -1
  78. data/spec/sample_feeds/a10.xml +72 -0
  79. data/spec/spec_helper.rb +3 -1
  80. metadata +13 -25
  81. data/Dangerfile +0 -1
@@ -1,36 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-10-08 04:14:19 +0900 using RuboCop version 0.59.2.
3
+ # on 2020-09-02 20:02:06 UTC using RuboCop version 0.90.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 7
10
- # Cop supports --auto-correct.
11
- Layout/EmptyLineAfterGuardClause:
12
- Exclude:
13
- - 'lib/feedjira/date_time_utilities/date_time_epoch_parser.rb'
14
- - 'lib/feedjira/feed_utilities.rb'
15
- - 'lib/feedjira/parser/json_feed_item.rb'
16
- - 'lib/feedjira/parser/podlove_chapter.rb'
17
-
18
- # Offense count: 1
19
- # Cop supports --auto-correct.
20
- Performance/UnneededSort:
21
- Exclude:
22
- - 'lib/feedjira/feed_utilities.rb'
23
-
24
- # Offense count: 3
25
- # Configuration parameters: EnforcedStyle.
26
- # SupportedStyles: inline, group
27
- Style/AccessModifierDeclarations:
28
- Exclude:
29
- - 'lib/feedjira.rb'
30
- - 'lib/feedjira/parser/itunes_rss.rb'
31
-
32
- # Offense count: 1
33
- # Cop supports --auto-correct.
34
- Style/UnneededCondition:
35
- Exclude:
36
- - 'lib/feedjira/feed_utilities.rb'
9
+ # Offense count: 20
10
+ Style/Documentation:
11
+ Enabled: false
@@ -28,7 +28,6 @@ before_install:
28
28
 
29
29
  script:
30
30
  - bundle exec rake
31
- - bundle exec danger
32
31
 
33
32
  notifications:
34
33
  email: false
@@ -1,5 +1,10 @@
1
1
  # Feedjira Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ * Enhancements
6
+ * Add support for the `a10` namespace used in RSS 2.0 feeds generated by .NET applications. Currently `a10:link`, `a10:updated`, `a10:content` and `a10:name` are supported. [#440][] (@knu)
7
+
3
8
  ## 3.1.0
4
9
 
5
10
  * Breaking Changes
data/Gemfile CHANGED
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org/"
2
4
 
3
5
  gemspec
4
6
 
5
7
  gem "pry"
6
- gem "rubocop", "~> 0.59.2"
8
+ gem "rubocop", "~> 0.90"
7
9
 
8
10
  group :test do
9
11
  gem "oga"
10
- gem "ox", platforms: [:mri, :rbx]
12
+ gem "ox", platforms: %i[mri rbx]
11
13
  gem "rake"
12
14
  end
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rspec/core/rake_task"
2
4
  require "rubocop/rake_task"
3
5
  require "yard"
@@ -14,4 +16,4 @@ YARD::Rake::YardocTask.new do |t|
14
16
  t.files = ["lib/**/*.rb", "-", "LICENSE"]
15
17
  end
16
18
 
17
- task default: [:spec, :rubocop]
19
+ task default: %i[spec rubocop]
@@ -1,8 +1,7 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
2
 
3
3
  require File.expand_path("lib/feedjira/version", __dir__)
4
4
 
5
- # rubocop:disable Metrics/BlockLength
6
5
  Gem::Specification.new do |s|
7
6
  s.authors = [
8
7
  "Adam Hess",
@@ -11,10 +10,9 @@ Gem::Specification.new do |s|
11
10
  "Jon Allured",
12
11
  "Julien Kirch",
13
12
  "Michael Stock",
14
- "Paul Dix",
13
+ "Paul Dix"
15
14
  ]
16
- s.email = "feedjira@gmail.com"
17
- s.homepage = "http://feedjira.com"
15
+ s.homepage = "https://github.com/feedjira/feedjira"
18
16
  s.license = "MIT"
19
17
  s.name = "feedjira"
20
18
  s.platform = Gem::Platform::RUBY
@@ -22,9 +20,9 @@ Gem::Specification.new do |s|
22
20
  s.version = Feedjira::VERSION
23
21
 
24
22
  s.metadata = {
25
- "homepage_uri" => "http://feedjira.com",
23
+ "homepage_uri" => "http://feedjira.com",
26
24
  "source_code_uri" => "https://github.com/feedjira/feedjira",
27
- "changelog_uri" => "https://github.com/feedjira/feedjira/blob/master/CHANGELOG.md"
25
+ "changelog_uri" => "https://github.com/feedjira/feedjira/blob/master/CHANGELOG.md"
28
26
  }
29
27
 
30
28
  s.files = `git ls-files`.split("\n")
@@ -36,11 +34,9 @@ Gem::Specification.new do |s|
36
34
  s.add_dependency "loofah", ">= 2.3.1"
37
35
  s.add_dependency "sax-machine", ">= 1.0"
38
36
 
39
- s.add_development_dependency "danger"
40
- s.add_development_dependency "danger-commit_lint"
37
+ s.add_development_dependency "faraday"
41
38
  s.add_development_dependency "rspec"
42
39
  s.add_development_dependency "rubocop"
43
40
  s.add_development_dependency "vcr"
44
41
  s.add_development_dependency "yard"
45
42
  end
46
- # rubocop:enable Metrics/BlockLength
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "zlib"
2
4
  require "sax-machine"
3
5
  require "loofah"
@@ -10,7 +12,6 @@ require "feedjira/date_time_utilities/date_time_epoch_parser"
10
12
  require "feedjira/date_time_utilities/date_time_language_parser"
11
13
  require "feedjira/date_time_utilities/date_time_pattern_parser"
12
14
  require "feedjira/date_time_utilities"
13
- require "feedjira/date_time_utilities"
14
15
  require "feedjira/feed_entry_utilities"
15
16
  require "feedjira/feed_utilities"
16
17
  require "feedjira/feed"
@@ -64,7 +65,7 @@ module Feedjira
64
65
 
65
66
  parser.parse(xml, &block)
66
67
  end
67
- module_function :parse
68
+ module_function :parse # rubocop:disable Style/AccessModifierDeclarations
68
69
 
69
70
  # Find compatible parser for given XML
70
71
  #
@@ -76,5 +77,5 @@ module Feedjira
76
77
  start_of_doc = xml.slice(0, 2000)
77
78
  Feedjira.parsers.detect { |klass| klass.able_to_parse?(start_of_doc) }
78
79
  end
79
- module_function :parser_for_xml
80
+ module_function :parser_for_xml # rubocop:disable Style/AccessModifierDeclarations
80
81
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Feedjira::Configuration
2
4
  module Feedjira
3
5
  # Provides global configuration options for Feedjira
@@ -10,7 +12,7 @@ module Feedjira
10
12
  attr_accessor(
11
13
  :logger,
12
14
  :parsers,
13
- :strip_whitespace,
15
+ :strip_whitespace
14
16
  )
15
17
 
16
18
  # Modify Feedjira's current configuration
@@ -48,7 +50,7 @@ module Feedjira
48
50
 
49
51
  # @private
50
52
  def default_logger
51
- Logger.new(STDOUT).tap do |logger|
53
+ Logger.new($stdout).tap do |logger|
52
54
  logger.progname = "Feedjira"
53
55
  logger.level = Logger::WARN
54
56
  end
@@ -65,7 +67,7 @@ module Feedjira
65
67
  Feedjira::Parser::Atom,
66
68
  Feedjira::Parser::ITunesRSS,
67
69
  Feedjira::Parser::RSS,
68
- Feedjira::Parser::JSONFeed,
70
+ Feedjira::Parser::JSONFeed
69
71
  ]
70
72
  end
71
73
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "feedjira/core_ext/time"
2
4
  require "feedjira/core_ext/date"
3
5
  require "feedjira/core_ext/string"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Date code pulled and adapted from:
2
4
  # Ruby Cookbook by Lucas Carlson and Leonard Richardson
3
5
  # Published by O'Reilly
@@ -15,6 +17,6 @@ class Date
15
17
 
16
18
  def feed_utils_to_time(dest, method)
17
19
  Time.send(method, dest.year, dest.month, dest.day, dest.hour, dest.min,
18
- dest.sec, dest.zone)
20
+ dest.sec, dest.zone)
19
21
  end
20
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class String
2
4
  def sanitize!
3
5
  replace(sanitize)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "time"
2
4
  require "date"
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module DateTimeUtilities
3
5
  # This is our date parsing heuristic.
@@ -6,20 +8,18 @@ module Feedjira
6
8
  DateTimePatternParser,
7
9
  DateTimeLanguageParser,
8
10
  DateTimeEpochParser,
9
- DateTime,
11
+ DateTime
10
12
  ].freeze
11
13
 
12
14
  # Parse the given string starting with the most common parser (default ruby)
13
15
  # and going over all other available parsers
14
16
  def parse_datetime(string)
15
17
  res = DATE_PARSERS.detect do |parser|
16
- begin
17
- return parser.parse(string).feed_utils_to_gm_time
18
- rescue StandardError => e
19
- Feedjira.logger.debug { "Failed to parse date #{string}" }
20
- Feedjira.logger.debug(e)
21
- nil
22
- end
18
+ return parser.parse(string).feed_utils_to_gm_time
19
+ rescue StandardError => e
20
+ Feedjira.logger.debug { "Failed to parse date #{string}" }
21
+ Feedjira.logger.debug(e)
22
+ nil
23
23
  end
24
24
 
25
25
  Feedjira.logger.warn { "Failed to parse date #{string}" } if res.nil?
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module DateTimeUtilities
3
5
  class DateTimeEpochParser
4
6
  def self.parse(string)
5
7
  epoch_time = string.to_i
6
8
  return Time.at(epoch_time).to_datetime if epoch_time.to_s == string
9
+
7
10
  raise "#{string} is not a valid epoch time"
8
11
  end
9
12
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module DateTimeUtilities
3
5
  class DateTimeLanguageParser
4
6
  MONTHS_ENGLISH =
5
- %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec).freeze
7
+ %w[Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec].freeze
6
8
  MONTHS_SPANISH =
7
- %w(Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic).freeze
9
+ %w[Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic].freeze
8
10
 
9
11
  def self.parse(string)
10
12
  DateTime.parse(translate(string))
@@ -1,21 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module DateTimeUtilities
3
5
  class DateTimePatternParser
4
6
  # Japanese Symbols are required for strange Date Strings like
5
7
  # '水, 31 8 2016 07:37:00 PDT'
6
- JAPANESE_SYMBOLS = %w(日 月 火 水 木 金 土).freeze
8
+ JAPANESE_SYMBOLS = %w[日 月 火 水 木 金 土].freeze
7
9
  PATTERNS = ["%m/%d/%Y %T %p", "%d %m %Y %T %Z"].freeze
8
10
 
9
11
  def self.parse(string)
10
12
  PATTERNS.each do |p|
11
- begin
12
- datetime = DateTime.strptime(prepare(string), p)
13
- return datetime
14
- rescue StandardError => e
15
- Feedjira.logger.debug("Failed to parse date #{string}")
16
- Feedjira.logger.debug(e)
17
- nil
18
- end
13
+ datetime = DateTime.strptime(prepare(string), p)
14
+ return datetime
15
+ rescue StandardError => e
16
+ Feedjira.logger.debug("Failed to parse date #{string}")
17
+ Feedjira.logger.debug(e)
18
+ nil
19
19
  end
20
20
  raise "No pattern matched #{string}"
21
21
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  class Feed
3
5
  class << self
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module FeedEntryUtilities
3
5
  include Enumerable
@@ -39,9 +41,9 @@ module Feedjira
39
41
  end
40
42
 
41
43
  def sanitize!
42
- %w(title author summary content image).each do |name|
44
+ %w[title author summary content image].each do |name|
43
45
  if respond_to?(name) && send(name).respond_to?(:sanitize!)
44
- send(name).send :sanitize!
46
+ send(name).send(:sanitize!)
45
47
  end
46
48
  end
47
49
  end
@@ -51,7 +53,7 @@ module Feedjira
51
53
  def each
52
54
  @rss_fields ||= instance_variables.map do |ivar|
53
55
  ivar.to_s.sub("@", "")
54
- end.select do |field|
56
+ end.select do |field| # rubocop:disable Style/MultilineBlockChain
55
57
  # select callable (public) methods only
56
58
  respond_to?(field)
57
59
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module FeedUtilities
3
- UPDATABLE_ATTRIBUTES = %w(title feed_url url last_modified etag).freeze
5
+ UPDATABLE_ATTRIBUTES = %w[title feed_url url last_modified etag].freeze
4
6
 
5
7
  attr_writer :new_entries, :updated, :last_modified
6
8
  attr_accessor :etag
@@ -41,7 +43,7 @@ module Feedjira
41
43
  def last_modified
42
44
  @last_modified ||= begin
43
45
  published = entries.reject { |e| e.published.nil? }
44
- entry = published.sort_by { |e| e.published if e.published }.last
46
+ entry = published.max_by(&:published)
45
47
  entry ? entry.published : nil
46
48
  end
47
49
  end
@@ -100,6 +102,7 @@ module Feedjira
100
102
 
101
103
  feed.entries.each do |entry|
102
104
  break unless new_entry?(entry, latest_entry)
105
+
103
106
  found_new_entries << entry
104
107
  end
105
108
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module Parser
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module Parser
3
5
  # Parser for dealing with Atom feeds.
@@ -14,7 +16,7 @@ module Feedjira
14
16
  elements :entry, as: :entries, class: AtomEntry
15
17
 
16
18
  def self.able_to_parse?(xml)
17
- %r{\<feed[^\>]+xmlns\s?=\s?[\"\'](http://www\.w3\.org/2005/Atom|http://purl\.org/atom/ns\#)[\"\'][^\>]*\>} =~ xml # rubocop:disable Metrics/LineLength
19
+ %r{<feed[^>]+xmlns\s?=\s?["'](http://www\.w3\.org/2005/Atom|http://purl\.org/atom/ns\#)["'][^>]*>} =~ xml
18
20
  end
19
21
 
20
22
  def url
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module Parser
3
5
  # Parser for dealing with Atom feed entries.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module Parser
3
5
  # Parser for dealing with Feedburner Atom feeds.
@@ -10,7 +12,7 @@ module Feedjira
10
12
  element :link, as: :url_text_html, value: :href,
11
13
  with: { type: "text/html" }
12
14
  element :link, as: :url_notype, value: :href, with: { type: nil }
13
- element :link, as: :feed_url_link, value: :href, with: { type: "application/atom+xml" } # rubocop:disable Metrics/LineLength
15
+ element :link, as: :feed_url_link, value: :href, with: { type: "application/atom+xml" }
14
16
  element :"atom10:link", as: :feed_url_atom10_link, value: :href,
15
17
  with: { type: "application/atom+xml" }
16
18
  elements :"atom10:link", as: :hubs, value: :href, with: { rel: "hub" }
@@ -19,7 +21,7 @@ module Feedjira
19
21
  attr_writer :url, :feed_url
20
22
 
21
23
  def self.able_to_parse?(xml)
22
- ((/<feed/ =~ xml) && (/Atom/ =~ xml) && (/feedburner/ =~ xml) && !(/\<rss|\<rdf/ =~ xml)) || false # rubocop:disable Metrics/LineLength
24
+ ((/<feed/ =~ xml) && (/Atom/ =~ xml) && (/feedburner/ =~ xml) && !(/<rss|<rdf/ =~ xml)) || false
23
25
  end
24
26
 
25
27
  # Feed url is <link> with type="text/html" if present,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Feedjira
2
4
  module Parser
3
5
  # Parser for dealing with Feedburner Atom feed entries.
@@ -7,9 +9,7 @@ module Feedjira
7
9
  include AtomEntryUtilities
8
10
 
9
11
  element :"feedburner:origLink", as: :orig_link
10
- # rubocop:disable Style/AccessModifierDeclarations
11
12
  private :orig_link
12
- # rubocop:enable Style/AccessModifierDeclarations
13
13
 
14
14
  element :"media:thumbnail", as: :image, value: :url
15
15
  element :"media:content", as: :image, value: :url