librarix/lib/librarix/filter.rb

33 lines
673 B
Ruby
Raw Normal View History

2015-10-30 12:59:58 +01:00
module Librarix
class Filter
attr_reader :movies, :params
def initialize(params)
@params = params
filter
end
private
def filter
@movies = Librarix::Redis::Movie.all
by_title if @params.key?('title')
2015-11-06 12:51:08 +01:00
by_view_state if @params.key?('view_state')
2015-10-30 12:59:58 +01:00
@movies.sort_by!(&:release_date).reverse!
end
def by_title
movies.select! { |movie| movie.title.downcase.include?(params['title']) }
end
2015-11-06 12:51:08 +01:00
def by_view_state
if params['view_state'] == 'viewed'
movies.keep_if(&:viewed?)
elsif params['view_state'] == 'not_viewed'
movies.delete_if(&:viewed?)
end
end
2015-10-30 12:59:58 +01:00
end
end