class Wooster::Policy::Permissions

Public Class Methods

new(klass) click to toggle source
# File lib/wooster/policy_builder.rb, line 56
def initialize(klass)
  @klass = klass
end

Public Instance Methods

create( block) click to toggle source
# File lib/wooster/policy_builder.rb, line 77
def create( block)
  record(:create,block)
end
delete( block) click to toggle source
# File lib/wooster/policy_builder.rb, line 74
def delete( block)
  record(:delete,block)
end
field(name,type,block) click to toggle source
# File lib/wooster/policy_builder.rb, line 84
def field(name,type,block)
  fields = @klass.class_variable_get(:@@wooster_field)
  fields[name.to_s][type] << block
end
field_read(name, block) click to toggle source
# File lib/wooster/policy_builder.rb, line 88
def field_read(name, block)
  field name,:read, block
end
field_readwrite(name, block) click to toggle source
# File lib/wooster/policy_builder.rb, line 94
def field_readwrite(name, block)
  field  name,:read, block
  field  name,:write, block
end
field_write(name, block) click to toggle source
# File lib/wooster/policy_builder.rb, line 91
def field_write(name, block)
  field  name,:write, block
end
read( block) click to toggle source
# File lib/wooster/policy_builder.rb, line 71
def read( block)
  record(:read,block)
end
record(*args) click to toggle source
# File lib/wooster/policy_builder.rb, line 59
def record(*args)
  block = args.pop
  if args== []
    args = [:read, :write, :delete, :create]
  end
  args.each {|type|
    unless type.is_a?(Symbol)
      raise ArgumentError 
    end
    @klass.class_variable_get(:@@wooster_records)[type] << block
  }
end
write(block) click to toggle source
# File lib/wooster/policy_builder.rb, line 80
def write(block)
  record(:write,block)
end