class Auditor::Config

Attributes

actions[R]
options[R]

Public Class Methods

new(*args) click to toggle source
# File lib/auditor/config.rb, line 10
def initialize(*args)
  @options = (args.pop if args.last.kind_of?(Hash)) || {}
  normalize_options(@options)

  @actions = args.map(&:to_sym)
  validate_actions(@actions)
end
valid_actions() click to toggle source
# File lib/auditor/config.rb, line 6
def self.valid_actions
  @valid_actions ||= [:create, :find, :update, :destroy]
end

Private Instance Methods

normalize_options(options) click to toggle source
# File lib/auditor/config.rb, line 20
def normalize_options(options)
  options.each_pair { |k, v| options[k.to_sym] = options.delete(k) unless k.kind_of? Symbol }
  options[:only] ||= []
  options[:except] ||= []
  options[:only] = Array(options[:only]).map(&:to_s)
  options[:except] = Array(options[:except]).map(&:to_s)
end
validate_actions(actions) click to toggle source
# File lib/auditor/config.rb, line 28
def validate_actions(actions)
  raise Auditor::Error.new "at least one action in #{Config.valid_actions.inspect} must be specified" if actions.empty?
  raise Auditor::Error.new "#{Config.valid_actions.inspect} are the only valid actions" unless actions.all? { |a| Config.valid_actions.include?(a.to_sym) }
end