Module: LLT::Helpers::QueryMethods

Defined in:
lib/llt/helpers/query_methods.rb

Instance Method Summary collapse

Instance Method Details

#add_query_methods_for(key_term, use: nil, delegate_to: nil) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/llt/helpers/query_methods.rb', line 4

def add_query_methods_for(key_term, use: nil, delegate_to: nil)
  raise ArgumentError, "Can't use :use and :delegate_to together" if use && delegate_to

  meths = t.values_for(key_term)
  used_var = use || "@#{key_term}"
  meths.each do |meth|
    body = if delegate_to
             "#{delegate_to}.#{meth}?"
           else
             "#{used_var} == :#{t.value_for(key_term, meth)}"
           end

    class_eval "      def \#{meth}?\n        \#{body}\n      end\n    STR\n  end\nend\n"