Module: JSON::SchemaBuilder::Attribute::ClassMethods

Defined in:
lib/json/schema_builder/attribute.rb

Instance Method Summary collapse

Instance Method Details

#attribute(name, as: nil, array: false) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/json/schema_builder/attribute.rb', line 7

def attribute(name, as: nil, array: false)
  attr = as || snakeize(name)
  define_method name do |*values|
    result = if array
      _array_attr attr, values.flatten
    else
      _attr attr, values.first
    end

    parent.reinitialize if parent
    result
  end
  alias_method "#{ name }=", name
end