Class: Rssly::Collection
- Inherits:
-
Object
- Object
- Rssly::Collection
- Defined in:
- lib/rssly/collection.rb,
lib/rssly/collection/age_filter.rb,
lib/rssly/collection/unique_filter.rb
Overview
Represents a collection of articles
Defined Under Namespace
Modules: AgeFilter, UniqueFilter
Instance Attribute Summary collapse
-
#articles ⇒ Object
Returns the value of attribute articles.
Class Method Summary collapse
Instance Method Summary collapse
- #filter(filter, **opts) ⇒ Object
-
#initialize(items) ⇒ Collection
constructor
A new instance of Collection.
- #length ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(items) ⇒ Collection
Returns a new instance of Collection.
25 26 27 |
# File 'lib/rssly/collection.rb', line 25 def initialize(items) self.articles = items end |
Instance Attribute Details
#articles ⇒ Object
Returns the value of attribute articles.
23 24 25 |
# File 'lib/rssly/collection.rb', line 23 def articles @articles end |
Class Method Details
.create_from_feeds(*feeds) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rssly/collection.rb', line 7 def create_from_feeds(*feeds) if Rssly::CONFIG[:verbose] $stderr.puts( "Creating collection from #{feeds.map(&:url).join(', ')}" ) end instance = new( feeds.map { |f| f.articles }.flatten ) instance.filter(UniqueFilter) instance end |
Instance Method Details
#filter(filter, **opts) ⇒ Object
49 50 51 |
# File 'lib/rssly/collection.rb', line 49 def filter(filter, **opts) self.articles = filter.parse(articles, **opts) end |
#length ⇒ Object
29 30 31 |
# File 'lib/rssly/collection.rb', line 29 def length articles.length end |
#to_json ⇒ Object
53 54 55 |
# File 'lib/rssly/collection.rb', line 53 def to_json JSON.generate(articles.map { |a| a.to_h }) end |