module Chooser
Constants
- VERSION
Public Instance Methods
choose(selector)
click to toggle source
# File lib/chooser.rb, line 4 def choose(selector) ary = [] if selector.is_a?(Hash) each do |ob| ary << ob if selector.all? do |m, v| ob.public_send(m) == v || (v.respond_to?(:include?) && v.include?(ob.public_send(m))) || (v.is_a?(Regexp) && v =~ ob.public_send(m)) end end elsif selector.is_a?(String) each do |ob| ary << ob if !!ob.instance_eval(selector) end else raise ArgumentError, 'Supply an options hash (e.g. target.choose :street => "Main", :age => (24..30), :address => /Main/) or evaluated string (e.g. target.choose "age >= 24 && address =~ /Main/").' end ary end
choose_not(selector)
click to toggle source
# File lib/chooser.rb, line 24 def choose_not(selector) self - choose(selector) end