Module: FormalWear::Suit

Defined in:
lib/formal_wear/suit.rb

Class Method Summary collapse

Class Method Details

.up(klass) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/formal_wear/suit.rb', line 3

def self.up(klass)
  class << klass
    [:optional, :required].each do |kind|
      define_method :"#{kind}_attrs" do |attrs|
        validate_attrs!(attrs)

        var = class_variable_get(:"@@#{kind}_fields") || {}
        class_variable_set(:"@@#{kind}_fields", var.merge(attrs))

        create_accessors(attrs.keys)
      end
      alias :"#{kind}_attr" :"#{kind}_attrs"
    end
  end
end