Module: SqlLogic::Associations
- Defined in:
- lib/sql_logic/associations.rb
Instance Method Summary collapse
-
#association_alias_condition?(name) ⇒ Boolean
Is the ane of the method a valie name for an association alias condition? An alias being “gt” for “greater_than”, etc.
-
#association_condition?(name) ⇒ Boolean
Is the name of the method a valid name for an association condition?.
-
#primary_condition_name(name) ⇒ Object
:nodoc:.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object (private)
28 29 30 31 32 33 34 |
# File 'lib/sql_logic/associations.rb', line 28 def method_missing(name, *args, &block) if details = association_condition_details(name) create_association_condition(details[:association], details[:column], details[:condition], args) else super end end |
Instance Method Details
#association_alias_condition?(name) ⇒ Boolean
Is the ane of the method a valie name for an association alias condition? An alias being “gt” for “greater_than”, etc.
23 24 25 |
# File 'lib/sql_logic/associations.rb', line 23 def association_alias_condition?(name) !association_alias_condition_details(name).nil? end |
#association_condition?(name) ⇒ Boolean
Is the name of the method a valid name for an association condition?
17 18 19 |
# File 'lib/sql_logic/associations.rb', line 17 def association_condition?(name) !association_condition_details(name).nil? end |
#primary_condition_name(name) ⇒ Object
:nodoc:
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/sql_logic/associations.rb', line 4 def primary_condition_name(name) # :nodoc: if result = super result elsif association_condition?(name) name.to_sym elsif details = association_alias_condition_details(name) "#{details[:association]}_#{details[:column]}_#{primary_condition(details[:condition])}".to_sym else nil end end |