Module: Wooster

Defined in:
lib/wooster/base.rb,
lib/wooster/version.rb

Defined Under Namespace

Modules: Policy Classes: FieldPermissions, InvalidCreateError, InvalidDeleteError, InvalidFieldWriteError, InvalidUpdateError, RecordPermissions

Constant Summary collapse

VERSION =
"0.0.4"

Class Method Summary collapse

Class Method Details

.any_permission?(permissions, object) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/wooster/base.rb', line 21

def self.any_permission?(permissions, object)
  permissions.any?{|func|  Wooster.controller_exec(func,object)}  
end

.controller_exec(block, *args) ⇒ Object



18
19
20
# File 'lib/wooster/base.rb', line 18

def self.controller_exec(block, *args)
  Thread.current[:wooster_controller].instance_exec *args,&block
end

.init_policy(klass) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/wooster/base.rb', line 4

def self.init_policy(klass)
  if klass.class_variable_defined? :@@wooster_field
   raise RuntimeError
  end
  klass.cattr_accessor :wooster_records
  klass.cattr_accessor :wooster_field
  x = Hash.new
  x.default_proc = Proc.new do |hash, key|
    hash[key] = FieldPermissions.new([],[])
  end
  klass.wooster_records = RecordPermissions.new([],[],[],[])
  klass.wooster_field = x
end