Module: AttrRequired::ClassMethods
- Defined in:
- lib/attr_required.rb
Instance Method Summary collapse
- #attr_required(*keys) ⇒ Object
- #attr_required?(key) ⇒ Boolean
- #inherited(klass) ⇒ Object
- #required_attributes ⇒ Object
- #undef_required_attributes(*keys) ⇒ Object
Instance Method Details
#attr_required(*keys) ⇒ Object
18 19 20 21 22 23 24 |
# 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) ⇒ Boolean
26 27 28 |
# File 'lib/attr_required.rb', line 26 def attr_required?(key) required_attributes.include? key end |
#inherited(klass) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/attr_required.rb', line 11 def inherited(klass) super unless required_attributes.empty? klass.attr_required(*required_attributes) end end |
#required_attributes ⇒ Object
30 31 32 |
# File 'lib/attr_required.rb', line 30 def required_attributes @required_attributes ||= [] end |
#undef_required_attributes(*keys) ⇒ Object
34 35 36 37 38 39 40 41 |
# 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 |