module Gyro::Generator

Public Instance Methods

generate_entities(xcdatamodel) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 60
def generate_entities(xcdatamodel)
  xcdatamodel.to_h['entities'].each do |entity|
    entity_context = { 'params' => @params, 'entity' => entity }
    # Rendering template using entity and params context
    output = render_entity(entity_context)
    # Don't generate empty output
    next if output.delete("\n").empty?

    filename_context = { 'params' => @params, 'name' => entity['name'] }
    # Rendering filename template using entity name and params context
    filename = render_filename(filename_context)
    Gyro::Log.success("#{filename} is created !")
    # Write model object
    File.write(@output_dir + filename, output)
    # Generate model object enums
    generate_enums(entity['attributes'])
  end
end
generate_enum(enum_name, output) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 96
def generate_enum(enum_name, output)
  # Rendering enum filename template using enum name and params context
  enum_filename_context = { 'params' => @params, 'name' => enum_name }
  enum_filename = render_enum_filename(enum_filename_context)
  File.write(@output_dir + enum_filename, output)
end
generate_enums(attributes) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 79
def generate_enums(attributes)
  enums = []
  attributes.each do |attribute|
    enum_type = attribute['enum_type']
    next if enums.include?(enum_type) || enum_type.empty?
    enums.push(enum_type)

    enum_context = { 'params' => @params, 'attribute' => attribute }
    # Rendering enum template using attribute and params context
    output = render_enum(enum_context)
    # Don't generate empty output
    next if output.delete("\n").empty?

    generate_enum(enum_type, output)
  end
end
render_entity(context) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 103
def render_entity(context)
  @entity_template.render(context, filters: [Gyro::Generator::LiquidFilters])
                  .gsub(/^ +$/, '')
end
render_enum(context) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 112
def render_enum(context)
  @enum_template.render(context, filters: [Gyro::Generator::LiquidFilters])
                .gsub(/^ +$/, '')
end
render_enum_filename(context) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 117
def render_enum_filename(context)
  @enum_filename_template.render(context).chomp
end
render_filename(context) click to toggle source
# File lib/gyro/generator/liquid/liquid.rb, line 108
def render_filename(context)
  @entity_filename_template.render(context).chomp
end