Sha256: 44b93541ef66c4e6c284d6de120c98bdc76f478d5b3d1b9537e11a522d9aec4a

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

class Episode
  attr_accessor :title, :link, :description, :date, :books

  extend Memorable::ClassMethods
  extend Findable::ClassMethods
  extend Sortable::ClassMethods
  include Memorable::InstanceMethods


  @@all = []

  def initialize(attributes)
    @books = []

    attributes.each do |k, v|
      self.send("#{k}=", v)
    end

  end

  def self.all
    @@all
  end

  def add_book(book)
    self.books << book unless self.books.include?(book)
    book.episode << self unless book.episode.include?(self)
    books
  end

  def self.find_by_keyword(keyword)
    self.all.select { |ep| ep.title.downcase.include?(keyword) }
  end


  def self.find_by_date(first_date, last_date)
    self.all.select { |ep| ep.date >= first_date && ep.date <= last_date }
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
podcast-book-club-1.0.3 lib/podcast_book_club/episode.rb
podcast-book-club-1.0.2 lib/podcast_book_club/episode.rb