module AttrRequired::ClassMethods
Public Instance Methods
attr_required(*keys)
click to toggle source
# File lib/attr_required.rb, line 18 def attr_required(*keys) if defined? undef_optional_attributes undef_optional_attributes(*keys) end required_attributes.concat keys attr_accessor(*keys) end
attr_required?(key)
click to toggle source
# File lib/attr_required.rb, line 26 def attr_required?(key) required_attributes.include? key end
inherited(klass)
click to toggle source
Calls superclass method
# File lib/attr_required.rb, line 11 def inherited(klass) super unless required_attributes.empty? klass.attr_required(*required_attributes) end end
required_attributes()
click to toggle source
# File lib/attr_required.rb, line 30 def required_attributes @required_attributes ||= [] end
undef_required_attributes(*keys)
click to toggle source
# File lib/attr_required.rb, line 34 def undef_required_attributes(*keys) keys.each do |key| if attr_required?(key) undef_method key, :"#{key}=" required_attributes.delete key end end end