class Trailblazer::Generator::Builder::Cell

Public Instance Methods

generate_actions!(options, params:) click to toggle source
# File lib/trailblazer/generator/builder/cell.rb, line 10
def generate_actions!(options, params:)
  actions = params[:options]['actions'].split(',')
  actions.each do |action|
    generate_file(options, name: params[:name], action: action)
    generate_file(options, name: params[:name], action: 'item') if action == 'Index'
  end
end
generate_views!(options, params:) click to toggle source
# File lib/trailblazer/generator/builder/cell.rb, line 18
def generate_views!(options, params:)
  options_dup = params[:options].dup
  actions = params[:options]['actions'].dup
  if actions.match /index/i
    actions << ',item'
    options_dup['actions'] = actions
  end
  Trailblazer::Generator::Builder::View.(name: params[:name], options: options_dup)
  true
end

Private Instance Methods

generate_file(options, name:, action:) click to toggle source
# File lib/trailblazer/generator/builder/cell.rb, line 30
def generate_file(options, name:, action:)
  model = Trailblazer::Generator::Cell.build_model(
    name: name, action: action
  )
  params = options['params'][:options]
  content = Cell.(model, params)

  name = Trailblazer::Generator::Inflector.underscore(name)
  path = File.join('app', 'concepts', name, 'cell', "#{action}.rb")

  Trailblazer::Generator::Output.new(path: path, content: content).save
end