module MethodOrProcHelper
def call_method_or_proc_on(obj, symbol_or_proc, options = {})
call_method_or_proc_on(@my_obj, proc)
proc = Proc.new{|s| s.size }
OR
call_method_or_proc_on(@my_obj, :size) same as @my_obj.size
method takes care of this functionality.
or instance_exec a proc passing in the object as the first parameter. This
Many times throughout the views we want to either call a method on an object
def call_method_or_proc_on(obj, symbol_or_proc, options = {}) exec = options[:exec].nil? ? true : options[:exec] case symbol_or_proc when Symbol, String obj.send(symbol_or_proc.to_sym) when Proc if exec instance_exec(obj, &symbol_or_proc) else symbol_or_proc.call(obj) end end end
def render_or_call_method_or_proc_on(obj, string_symbol_or_proc, options = {})
returning the content when String or call call_method_or_proc_on when Symbol or Proc.
static (String), methods (Symbol) or procs (Proc). This helper takes care of
Many configuration options (Ex: site_title, title_image) could either be
def render_or_call_method_or_proc_on(obj, string_symbol_or_proc, options = {}) case string_symbol_or_proc when Symbol, Proc call_method_or_proc_on(obj, string_symbol_or_proc, options) when String string_symbol_or_proc end end