class Rules::Rule
Public Class Methods
new(rule)
click to toggle source
# File lib/earch/rule.rb, line 3 def initialize(rule) @rule = rule end
Public Instance Methods
match?(object)
click to toggle source
# File lib/earch/rule.rb, line 7 def match?(object) @rule.map{|k,v|send(k, v, object)}.all? end
Private Instance Methods
compare(rule, target)
click to toggle source
# File lib/earch/rule.rb, line 71 def compare(rule, target) case rule when Regexp rule =~ target when Integer rule <= target when Range rule.include?(target) when Array if target.is_a?(Array) !(rule & target).empty? else rule.include?(target) end else rule == target end end
favorite_count(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 28 def favorite_count(rule, object) compare(rule, object.favorite_count) end
hashtag(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 52 def hashtag(rule, object) compare(rule, object.hashtags.map{|h|h.text}) end
lang(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 36 def lang(rule, object) compare(rule, object.lang) end
mention(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 56 def mention(rule, object) if !rule.nil? && !rule.empty? key = rule.first.is_a?(Integer) ? :id : :screen_name compare(rule, object.user_mentions.map{|h|h.send(key)}) end end
quote(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 63 def quote(rule, object) compare(rule, object.quote?) end
reply(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 48 def reply(rule, object) compare(rule, object.reply?) end
retweet(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 67 def retweet(rule, object) compare(rule, object.retweet?) end
retweet_count(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 32 def retweet_count(rule, object) compare(rule, object.retweet_count) end
screen_name(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 24 def screen_name(rule, object) compare(rule, object.screen_name) end
source(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 44 def source(rule, object) compare(rule, object.source.gsub(/<(.+)\">/,"").gsub(/<\/a>/,"")) end
text(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 12 def text(rule, object) compare(rule, object.text) end
user_id(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 16 def user_id(rule, object) compare(rule, object.user.id_str) end
user_lang(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 40 def user_lang(rule, object) compare(rule, object.user.lang) end
user_name(rule, object)
click to toggle source
# File lib/earch/rule.rb, line 20 def user_name(rule, object) compare(rule, object.user) end