Sha256: faaff3bb9ec84184b5b5f877446e90443b36da5096af559f45c8dcdd4b808405

Contents?: true

Size: 832 Bytes

Versions: 46

Compression:

Stored size: 832 Bytes

Contents

module Lockdown
  class Context
    attr_accessor :name, :allowed_methods

    def to_s
      self.class.to_s
    end

    def allows?(method_name)
      @allowed_methods.include?(method_name)
    end
  end

  class RootContext < Context
    def initialize(name)
      @name = name
      @allowed_methods = %w(with_controller and_controller to_model)
    end
  end

  class ControllerContext < Context
    def initialize(name)
      @name = name
      @allowed_methods = %w(with_controller and_controller to_model only_methods except_methods)
    end
  end

  class ModelContext < Context
    def initialize(name)
      @name = name
      @allowed_methods = %w(where)
    end
  end

  class ModelWhereContext < Context
    def initialize(name)
      @name = name
      @allowed_methods = %w(is_in includes equals)
    end
  end
end

Version data entries

46 entries across 46 versions & 5 rubygems

Version Path
andrewzielinski-lockdown-0.9.6 lib/lockdown/context.rb
blaxter-lockdown-0.9.8.99 lib/lockdown/context.rb
blaxter-lockdown-0.9.9 lib/lockdown/context.rb
revo-lockdown-0.9.6 lib/lockdown/context.rb
revo-lockdown-1.7.1 lib/lockdown/context.rb
lockdown_vail-1.6.2.1 lib/lockdown/context.rb
revo-lockdown-1.7.0 lib/lockdown/context.rb
lockdown-1.6.5 lib/lockdown/context.rb
revo-lockdown-1.6.2.2 lib/lockdown/context.rb
lockdown-1.6.4 lib/lockdown/context.rb
lockdown-1.6.3 lib/lockdown/context.rb
revo-lockdown-1.6.2.1 lib/lockdown/context.rb
revo-lockdown-1.6.2 lib/lockdown/context.rb
lockdown-1.6.2 lib/lockdown/context.rb
lockdown-1.6.1 lib/lockdown/context.rb
lockdown-1.6.0 lib/lockdown/context.rb
lockdown-1.5.1 lib/lockdown/context.rb
lockdown-1.5.0 lib/lockdown/context.rb
lockdown-1.3.2 lib/lockdown/context.rb
lockdown-1.3.1 lib/lockdown/context.rb