class Shaf::Generator::Forms

Public Instance Methods

call() click to toggle source
# File lib/shaf/generator/forms.rb, line 7
def call
  create_forms
end
class_name() click to toggle source
# File lib/shaf/generator/forms.rb, line 22
def class_name
  "#{model_class_name}Forms"
end
create_forms() click to toggle source
# File lib/shaf/generator/forms.rb, line 34
def create_forms
  content = render(template, opts)
  # FIXME: Append if file exists!
  write_output(target, content)
end
fields() click to toggle source
# File lib/shaf/generator/forms.rb, line 49
def fields
  args[1..-1].map do |f|
    (name, type, label) = f.split(':')
    label_str = label ? %(, label: "#{label}") : ''
    format 'field :%s, type: "%s"%s' % [name, rewrite(type), label_str]
  end
end
model_class_name() click to toggle source
# File lib/shaf/generator/forms.rb, line 18
def model_class_name
  Utils.model_name(model_name)
end
model_name() click to toggle source
# File lib/shaf/generator/forms.rb, line 11
def model_name
  n = args.first || ''
  return n unless n.empty?
  raise Command::ArgumentError,
    'Please provide a model name when using the forms generator!'
end
opts() click to toggle source
# File lib/shaf/generator/forms.rb, line 40
def opts
  {
    model_name: model_name,
    class_name: class_name,
    model_class_name: model_class_name,
    fields: fields
  }
end
rewrite(type) click to toggle source
# File lib/shaf/generator/forms.rb, line 57
def rewrite(type)
  case type
  when /foreign_key/
    'integer'
  when NilClass
    'string'
  else
    type
  end
end
target() click to toggle source
# File lib/shaf/generator/forms.rb, line 30
def target
  "api/forms/#{model_name}_forms.rb"
end
template() click to toggle source
# File lib/shaf/generator/forms.rb, line 26
def template
  'api/forms.rb'
end