module JSON::SchemaBuilder::Attribute::ClassMethods
Public Instance Methods
attribute(name, as: nil, array: false)
click to toggle source
# 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
Protected Instance Methods
snakeize(str)
click to toggle source
# File lib/json/schema_builder/attribute.rb, line 24 def snakeize(str) str.to_s.underscore.gsub(/_(\w)/){ $1.upcase } end