class Katapult::Generators::ViewsGenerator

Public Instance Methods

create_form_partial_if_needed() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 34
def create_form_partial_if_needed
  _form_actions = (actions.map(&:name) & %w[new edit])

  if _form_actions.any?
    file_name = '_form.html.haml'

    create_view file_name, File.join(views_path, file_name)
  end
end
create_rails_standard_action_views() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 26
def create_rails_standard_action_views
  actions.select{ |a| a.get? && WebUI::RAILS_ACTIONS.include?(a.name) }.each do |action|
    file_name = "#{action.name}.html.haml"

    create_view file_name, File.join(views_path, file_name)
  end
end
create_views_directory() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 14
def create_views_directory
  FileUtils.mkdir_p views_path
end
create_views_for_custom_actions() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 44
def create_views_for_custom_actions
  web_ui.custom_actions.select(&:get?).each do |action|
    @action = action # Make the action object accessible in templates
    create_view 'custom_action.html.haml', File.join(views_path, "#{action.name}.html.haml")
  end
end
generate_integration_tests() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 51
def generate_integration_tests
  if web_ui.model.present?
    Generators::CucumberFeaturesGenerator.new(web_ui.model, options).invoke_all
  end
end
install_helpers() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 18
def install_helpers
  directory 'app/helpers'
end
install_styles() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 22
def install_styles
  directory 'app/webpack/assets/stylesheets/blocks'
end
model_name(kind = nil) click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 58
def model_name(kind = nil)
  web_ui.model_name(kind)
end
views_path() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 62
def views_path
  File.join('app', 'views', model_name(:variables))
end

Private Instance Methods

actions() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 83
def actions
  web_ui.actions
end
create_view(template, destination) click to toggle source

Rails views depend heavily on models. If the WebUI has no model, do not use the templates but create empty files instead.

# File lib/generators/katapult/views/views_generator.rb, line 71
def create_view(template, destination)
  if web_ui.model
    template template, destination
  else
    create_file destination
  end
end
web_ui() click to toggle source
# File lib/generators/katapult/views/views_generator.rb, line 79
def web_ui
  @element
end