module PassionView::Delegatable

Public Instance Methods

method_missing(m, *args, &block) click to toggle source
Calls superclass method
# File lib/passion_view/delegatable.rb, line 15
def method_missing(m, *args, &block)
  self.class.prefixes.each do |prefix, method_names|
    next unless m.to_s.start_with?(prefix)

    last_m = m.to_s.gsub(prefix, '').to_sym
    return method_names.inject(resource) do |result, method|
      break if result.nil?

      result.send method
    end&.send(last_m)
  end

  return resource.send(m, *args, &block) if resource.respond_to?(m)

  super
end
respond_to_missing?(m, _) click to toggle source
# File lib/passion_view/delegatable.rb, line 32
def respond_to_missing?(m, _)
  resource.respond_to?(m)
end