Class: Authorization::Analyzer::GeneralAuthorizationProcessor

Inherits:
SexpProcessor
  • Object
show all
Defined in:
lib/declarative_authorization/authorization_rules_analyzer.rb

Direct Known Subclasses

MergeableRulesProcessor

Instance Method Summary collapse

Constructor Details

#initialize(analyzer) ⇒ GeneralAuthorizationProcessor

Returns a new instance of GeneralAuthorizationProcessor.



34
35
36
37
38
39
40
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 34

def initialize(analyzer)
  super()
  self.auto_shift_type = true
  self.require_empty = false
  self.strict = false
  @analyzer = analyzer
end

Instance Method Details

#analyze(sexp_array) ⇒ Object



42
43
44
45
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 42

def analyze (sexp_array)
  process(sexp_array)
  analyze_rules
end

#analyze_rulesObject



47
48
49
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 47

def analyze_rules
  # to be implemented by specific processor
end

#process_arglist(exp) ⇒ Object



55
56
57
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 55

def process_arglist (exp)
  s(exp.collect {|inner_exp| process(inner_exp).shift})
end

#process_hash(exp) ⇒ Object



59
60
61
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 59

def process_hash (exp)
  s(Hash[*exp.collect {|inner_exp| process(inner_exp).shift}])
end

#process_iter(exp) ⇒ Object



51
52
53
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 51

def process_iter (exp)
  s(:iter, process(exp.shift), process(exp.shift), process(exp.shift))
end

#process_lit(exp) ⇒ Object



63
64
65
# File 'lib/declarative_authorization/authorization_rules_analyzer.rb', line 63

def process_lit (exp)
  s(exp.shift)
end