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