# File lib/attr_required.rb, line 63 def attr_missing required_attributes.select do |key| value = send(key) if value.respond_to?(:empty?) value.empty? else value.nil? end end end
# File lib/attr_required.rb, line 57 def attr_missing! if attr_missing? raise AttrMissing.new("'#{attr_missing.join('\', \'')}' required.") end end
# File lib/attr_required.rb, line 53 def attr_missing? !attr_missing.empty? end
# File lib/attr_required.rb, line 49 def attr_required?(key) self.class.attr_required? key end
# File lib/attr_required.rb, line 45 def required_attributes self.class.required_attributes end
# File lib/attr_required.rb, line 5 def self.included(klass) klass.send :extend, ClassMethods end