module DCI::Controller::DSL::ClassMethods
Public Instance Methods
extend_resource(resource_method, *extensions)
click to toggle source
# File lib/controller/dsl.rb, line 9 def extend_resource(resource_method, *extensions) class_eval do extensions.each do |extension| with_method = "#{resource_method}_with_#{extension}" without_method = "#{resource_method}_without_#{extension}" define_method(with_method) do |*args| instance_variable_get("@#{with_method}") || send(without_method, *args).tap do |obj| obj.extend(extension) instance_variable_set("@#{with_method}", obj) end end alias_method without_method, resource_method alias_method resource_method, with_method end end end