Sha256: bf508ff10326102e3ef7fb97a08e9b3ac43f1b62c55e4799d6f7453aaccf12ac
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
require 'cancan' module Customs # Override CanCan::ControllerResource class ControllerResource < CanCan::ControllerResource def initialize *args super @controller.resource_name = instance_name @controller.resource_class = resource_class end def build_resource resource = resource_base.new assign_attributes(resource) end end module ControlTraffic def self.included base base.send :extend, ClassMethods base.class_attribute :controller_resource_class, :instance_reader => false base.controller_resource_class = ControllerResource base.class_attribute :resource_name, :instance_reader => false base.class_attribute :resource_class, :instance_reader => false base.define_callbacks :save, :destroy end module ClassMethods def cancan_resource_class if ancestors.map(&:to_s).include? "InheritedResources::Actions" super else self.controller_resource_class end end [:before, :after, :around].each do |callback| define_method "#{callback}_save" do |*names, &blk| _insert_callbacks(names, blk) do |name, options| set_callback :save, callback, name, options end end define_method "#{callback}_destroy" do |*names, &blk| _insert_callbacks(names, blk) do |name, options| set_callback :destroy, callback, name, options end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
customs-1.1.0 | lib/customs/control_traffic.rb |