class Authorization::DevelopmentSupport::Analyzer::GeneralRulesAnalyzer

Public Class Methods

new(analyzer) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 44
def initialize(analyzer)
  @analyzer = analyzer
end

Public Instance Methods

analyze() click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 48
def analyze
  mark(:policy, nil) if analyze_policy
  roles.select {|role| analyze_role(role) }.
      each { |role| mark(:role, role) }
  rules.select {|rule| analyze_rule(rule) }.
      each { |rule| mark(:rule, rule) }
  privileges.select {|privilege| !!analyze_privilege(privilege) }.
      each { |privilege| mark(:privilege, privilege) }
end

Protected Instance Methods

analyze_policy() click to toggle source

to be implemented by specific processor

# File lib/declarative_authorization/development_support/analyzer.rb, line 72
def analyze_policy; end
analyze_privilege(a_privilege) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 75
def analyze_privilege (a_privilege); end
analyze_role(a_role) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 73
def analyze_role (a_role); end
analyze_rule(a_rule) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 74
def analyze_rule (a_rule); end
message(object) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 76
def message (object); end
privileges() click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 67
def privileges
  @privileges ||= rules.collect {|rule| rule.privileges.to_a}.flatten.uniq
end
roles() click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 59
def roles
  @analyzer.roles
end
rules() click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 63
def rules
  @analyzer.rules
end

Private Instance Methods

mark(type, object) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 87
def mark (type, object)
  @analyzer.reports << Report.new(report_type,
      source_file(object), source_line(object), message(object))
end
report_type() click to toggle source

analyzer class name stripped of last word

# File lib/declarative_authorization/development_support/analyzer.rb, line 93
def report_type
  (self.class.name.demodulize.underscore.split('_')[0...-1] * '_').to_sym
end
source_file(object) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 83
def source_file (object)
  object.source_file if object.respond_to?(:source_file)
end
source_line(object) click to toggle source
# File lib/declarative_authorization/development_support/analyzer.rb, line 79
def source_line (object)
  object.source_line if object.respond_to?(:source_line)
end