Sha256: 91e281a94254261f4a5d473feba9e52bf7febd4dac7fe647562081b6c0bc40e1

Contents?: true

Size: 1.18 KB

Versions: 145

Compression:

Stored size: 1.18 KB

Contents

require "rails/generators"
require "fileutils"

module GovukPublishingComponents
  class ComponentGenerator < ::Rails::Generators::NamedBase
    source_root File.expand_path("templates", __dir__)

    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.gsub('-', '_')}.html.erb"
      template "component.yml.erb", "#{docs_dir}#{@public_name.gsub('-', '_')}.yml"
      template "_component.scss", "#{scss_dir}_#{@public_name}.scss"
    end

  private

    def create_directory_if_not_exists(dir)
      unless File.directory?(dir)
        puts("Directory #{dir} not found, creating")
        FileUtils.mkdir_p dir
      end
    end
  end
end

Version data entries

145 entries across 145 versions & 1 rubygems

Version Path
govuk_publishing_components-55.1.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-55.0.1 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-55.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-54.0.1 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-54.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-53.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-52.1.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-52.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-51.2.1 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-51.2.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-51.1.1 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-51.1.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-51.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-50.0.1 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-50.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-49.1.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-49.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-48.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-47.0.0 lib/generators/govuk_publishing_components/component_generator.rb
govuk_publishing_components-46.4.0 lib/generators/govuk_publishing_components/component_generator.rb