Sha256: 2f99fbdaf435c7fa89b83be28a752db617c0f3b72f90101b3fd9587f93e17d7f

Contents?: true

Size: 986 Bytes

Versions: 1

Compression:

Stored size: 986 Bytes

Contents

module ParamAccessible
  
  module ControllerExt
    extend ActiveSupport::Concern
    
    protected
    
    def ensure_params_are_accessible
      inaccessible_params = param_accessible_rules.detect_inaccessible_params self
      
      unless inaccessible_params.nil? || inaccessible_params.blank?
        raise ParamAccessible::Error.new(inaccessible_params)
      end
    end
    
    def param_accessible_rules
      self.class.param_accessible_rules
    end
    
    module ClassMethods
      
      def param_accessible *args
        param_accessible_rules.push *args
      end
      
      def param_accessible_rules
        return @param_accessible_rules if defined? @param_accessible_rules
        
        # inheritance
        if superclass.respond_to?(:param_accessible_rules)
          @param_accessible_rules = Rules.new superclass.param_accessible_rules
        else
          @param_accessible_rules = Rules.new
        end
      end
      
    end
    
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
param_accessible-0.0.1 lib/param_accessible/controller_ext.rb