class GoonModelGen::Source::Field

Attributes

name[R]
required[R]
tags[R]
type_name[R]
unique[R]

Public Class Methods

new(name, attrs) click to toggle source

@param name [String] @param attrs [Hash<string,Object>]

# File lib/goon_model_gen/source/field.rb, line 17
def initialize(name, attrs)
  @name = name
  @type_name = attrs['type']
  @required = attrs['required']
  @unique = attrs['unique']
  @tags = attrs['tags']
end

Public Instance Methods

build_tags() click to toggle source
# File lib/goon_model_gen/source/field.rb, line 25
def build_tags
  r = {}
  (tags || {}).each do |key, val|
    r[key] = val.is_a?(Array) ? val.dup : [val]
  end
  r['json'] ||= [name.underscore]
  if required
    r['validate'] = ['required'] + (r['validate'] || [])
  else
    r['json'] << 'omitempty'
  end
  return r
end