module Law::Statutes::Regulations

Public Instance Methods

ensure_valid_regulations(imposed_regulations) click to toggle source
# File lib/law/statutes/regulations.rb, line 41
def ensure_valid_regulations(imposed_regulations)
  raise ArgumentError, "a regulation is required" if imposed_regulations.empty?

  invalid_regulations = imposed_regulations.reject { |permission| permission.respond_to?(:imposed_by) }
  raise ArgumentError, "invalid regulations: #{invalid_regulations.join(", ")}" if invalid_regulations.present?
end
impose(*imposed_regulations) click to toggle source
# File lib/law/statutes/regulations.rb, line 26
def impose(*imposed_regulations)
  imposed_regulations = imposed_regulations.flatten.compact

  ensure_valid_regulations(imposed_regulations)

  imposed_regulations.each do |regulation|
    regulations << regulation
    track_regulation(regulation)
  end
end
inherited(base) click to toggle source
Calls superclass method
# File lib/law/statutes/regulations.rb, line 19
def inherited(base)
  base.regulations = regulations.dup
  super
end
track_regulation(regulation) click to toggle source
# File lib/law/statutes/regulations.rb, line 37
def track_regulation(regulation)
  regulation.imposed_by(self)
end
unregulated?() click to toggle source
# File lib/law/statutes/regulations.rb, line 15
def unregulated?
  regulations.empty?
end