Sha256: eb34915c68fbe58bdbf58960c8e0cb77c249d8c392069d41c09d912c26465114
Contents?: true
Size: 905 Bytes
Versions: 3
Compression:
Stored size: 905 Bytes
Contents
module CaseyJones module ActionControllerClassMethods def resource_attributes(*parameters) for action in [:show, :new, :edit, :create] a = "def #{action};" + ([:new, :create].include?(action) ? "@#{resource_class.name.underscore} = resource_class.new;" : "" ) + parameters.map{|p| if p.class == Hash meth, prm = [p.to_a.flatten[0], p.to_a.flatten[1]] else meth, prm = [p, p] end meth = meth.to_s + "=" if prm == :current_user val = "current_user" else val = "params[:#{prm}]" end "resource.send(\"#{meth}\", #{val})" }.join(";") + ";#{action}!;end;" class_eval a puts a end end end end ActionController::Base.extend CaseyJones::ActionControllerClassMethods
Version data entries
3 entries across 3 versions & 1 rubygems