class Rethinker::Criterion
Attributes
args[RW]
block[RW]
method[RW]
Public Class Methods
new(method, *args, &block)
click to toggle source
# File lib/rethinker/criterion.rb, line 5 def initialize(method, *args, &block) self.method = method self.args = args.flatten self.block = block end
Public Instance Methods
execute(query = nil, context)
click to toggle source
# File lib/rethinker/criterion.rb, line 11 def execute(query = nil, context) return RethinkDB::RQL.new.send(self.method, self.args.first) if query.nil? if !args.flatten.blank? && block query.send self.method, *process_args(self.args, context), block elsif !args.flatten.blank? query.send self.method, *process_args(self.args, context) elsif block query.send self.method, block else query.send self.method end end
process_args(args, context)
click to toggle source
# File lib/rethinker/criterion.rb, line 24 def process_args(args, context) if args && args.first.respond_to?(:to_rql) args.first.to_rql(context) else args end end