class GovukPublishingComponents::ComponentGenerator

Public Instance Methods

copy_component_files() click to toggle source
# File lib/generators/govuk_publishing_components/component_generator.rb, line 8
def copy_component_files
  @public_name = file_name.dasherize
  @component_prefix = "app-c-"
  component_directory_name = GovukPublishingComponents::Config.component_directory_name

  template_dir = "app/views/#{component_directory_name}/"
  docs_dir = "app/views/#{component_directory_name}/docs/"
  scss_dir = "app/assets/stylesheets/#{component_directory_name.dasherize}/"

  create_directory_if_not_exists(template_dir)
  create_directory_if_not_exists(docs_dir)
  create_directory_if_not_exists(scss_dir)

  template "_component.html.erb", "#{template_dir}_#{@public_name}.html.erb"
  template "component.yml.erb", "#{docs_dir}#{@public_name}.yml"
  template "_component.scss", "#{scss_dir}_#{@public_name}.scss"
end

Private Instance Methods

create_directory_if_not_exists(dir) click to toggle source
# File lib/generators/govuk_publishing_components/component_generator.rb, line 28
def create_directory_if_not_exists(dir)
  unless File.directory?(dir)
    puts("Directory #{dir} not found, creating")
    FileUtils.mkdir_p dir
  end
end