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