module Arcane::Parameters
Attributes
action[RW]
object[RW]
user[RW]
Public Instance Methods
as(user)
click to toggle source
# File lib/arcane/parameters.rb, line 29 def as(user) params = self.dup params.user = user return params end
dup()
click to toggle source
# File lib/arcane/parameters.rb, line 11 def dup self.class.new(self).tap do |duplicate| duplicate.user = user duplicate.object = object duplicate.action = action duplicate.default = default duplicate.instance_variable_set :@permitted, @permitted end end
for(object)
click to toggle source
# File lib/arcane/parameters.rb, line 23 def for(object) params = self.dup params.object = object return params end
on(action)
click to toggle source
# File lib/arcane/parameters.rb, line 35 def on(action) params = self.dup params.action = action return params end
refine(opts={})
click to toggle source
# File lib/arcane/parameters.rb, line 41 def refine(opts={}) params = self.dup params.action = opts[:action] || action || params[:action] params.user = opts[:user] || user params.object = opts[:object] || object refinery = Arcane::Finder.new(params.object).refinery.new(params.object, params.user) args = if params.action.nil? [] elsif refinery.respond_to?(params.action) refinery.public_send(params.action) elsif refinery.respond_to?(:default) refinery.default else [] end root = if refinery.respond_to?(:root) refinery.root elsif refinery.class.respond_to?(:root) refinery.class.root else Arcane::Finder.object_name(params.object) end return root.present? ? params.require(root.underscore).permit(*args) : params.permit(*args) end