Module: Spider::Model::ConditionMixin
Overview
Defined Under Namespace
Classes: ConditionElement, ConditionElementCreator
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *arguments) ⇒ Object
398
399
400
|
# File 'lib/spiderfw/model/condition.rb', line 398
def method_missing(meth, *arguments)
__create_condition_element(meth)
end
|
Instance Method Details
#__create_condition_element(meth) ⇒ Object
402
403
404
405
406
407
408
409
410
411
|
# File 'lib/spiderfw/model/condition.rb', line 402
def __create_condition_element(meth)
if (meth == :q)
return ConditionElementCreator.new
end
if (meth.to_s =~ /element_(.+)/) meth = $1.to_sym
end
name = @condition_element_name ? "#{@condition_element_name}.#{meth}" : meth.to_s
return ConditionElement.new(name, @condition_context)
end
|
#__el(meth) ⇒ Object
394
395
396
|
# File 'lib/spiderfw/model/condition.rb', line 394
def __el(meth)
__create_condition_element(meth)
end
|
#AND(&proc) ⇒ Object
417
418
419
420
421
422
423
424
425
426
|
# File 'lib/spiderfw/model/condition.rb', line 417
def AND(&proc)
@condition_context = []
instance_eval(&proc)
c = Condition.and
@condition_context.each do |cond|
c << cond unless (cond.conjunct)
end
@condition_context = nil
return c
end
|
413
414
415
|
# File 'lib/spiderfw/model/condition.rb', line 413
def id
return ConditionElement.new(:id, @condition_context)
end
|
#OR(&proc) ⇒ Object
428
429
430
431
432
433
434
435
436
437
|
# File 'lib/spiderfw/model/condition.rb', line 428
def OR(&proc)
@condition_context = []
instance_eval(&proc)
c = Condition.and
@condition_context.each do |cond|
c << cond unless (cond.conjunct)
end
@condition_context = nil
return c
end
|