Module: USaidWat::Application::FilterCommand
Instance Method Summary collapse
- #ensure_entries(noun, redditor, entries) ⇒ Object
- #filter_entries(noun, redditor, entries, subreddits, excluded_subreddits = []) ⇒ Object
- #grep_entries(noun, redditor, entries, grep, subreddits = []) ⇒ Object
- #limit_entries(noun, redditor, entries, n) ⇒ Object
Instance Method Details
#ensure_entries(noun, redditor, entries) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/usaidwat/filter.rb', line 41 def ensure_entries(noun, redditor, entries) if entries.empty? USaidWat::Left.new("#{redditor.username} has no #{noun}.") else USaidWat::Right.new(entries) end end |
#filter_entries(noun, redditor, entries, subreddits, excluded_subreddits = []) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/usaidwat/filter.rb', line 6 def filter_entries(noun, redditor, entries, subreddits, excluded_subreddits = []) return USaidWat::Right.new(entries) if subreddits.empty? && excluded_subreddits.empty? entries = entries.select { |e| subreddits.include?(e.subreddit.downcase) } unless subreddits.empty? entries = entries.reject { |e| excluded_subreddits.include?(e.subreddit.downcase) } if entries.empty? msg = "No #{noun} by #{redditor.username}" msg += " for #{subreddits.join(', ')}." unless subreddits.empty? USaidWat::Left.new(msg) else USaidWat::Right.new(entries) end end |
#grep_entries(noun, redditor, entries, grep, subreddits = []) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/usaidwat/filter.rb', line 19 def grep_entries(noun, redditor, entries, grep, subreddits = []) return USaidWat::Right.new(entries) if grep.nil? entries = entries.select { |e| e.body =~ /#{grep}/i } if entries.empty? msg = "#{redditor.username} has no #{noun} matching /#{grep}/" unless subreddits.empty? prefixed_subs = subreddits.map(&:prefix_subreddit) msg += " in " + prefixed_subs.or_join end msg += "." USaidWat::Left.new(msg) else USaidWat::Right.new(entries) end end |