Sha256: 52331d654d157c1c223d7da46bb1239cde2537f07e04f6cb241f42835b5fc58a

Contents?: true

Size: 701 Bytes

Versions: 35

Compression:

Stored size: 701 Bytes

Contents

require 'set'

module ActiveModel
  module MassAssignmentSecurity
    class PermissionSet < Set #:nodoc:

      def +(values)
        super(values.compact.map(&:to_s))
      end

      def include?(key)
        super(remove_multiparameter_id(key))
      end

      def deny?(key)
        raise NotImplementedError, "#deny?(key) supposed to be overwritten"
      end

    protected

      def remove_multiparameter_id(key)
        key.to_s.gsub(/\(.+/, '')
      end
    end

    class WhiteList < PermissionSet #:nodoc:

      def deny?(key)
        !include?(key)
      end
    end

    class BlackList < PermissionSet #:nodoc:

      def deny?(key)
        include?(key)
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 3 rubygems

Version Path
protected_attributes_continued-1.9.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.8.2 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.8.1 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.8.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.7.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.6.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.5.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.4.0 lib/active_model/mass_assignment_security/permission_set.rb
mongomodel-0.5.7 lib/mongomodel/vendor/active_model/mass_assignment_security/permission_set.rb
mongomodel-0.5.6 lib/mongomodel/vendor/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.3.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes-1.1.4 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.2.4 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.2.3 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.2.2 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.2.1 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes_continued-1.2.0 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes-1.1.3 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes-1.1.2 lib/active_model/mass_assignment_security/permission_set.rb
protected_attributes-1.1.1 lib/active_model/mass_assignment_security/permission_set.rb