Sha256: ac4f394c42905288abc7727f8ce6b8c3ff7b4d685d40f059110586a3d2f86f81

Contents?: true

Size: 1.6 KB

Versions: 11

Compression:

Stored size: 1.6 KB

Contents

# typed: false
# frozen_string_literal: true

require "rails/generators"
require_relative "../actions"

module Hephaestus
  module Generators
    class Base < Rails::Generators::Base
      include Hephaestus::Actions

      class << self
        def default_source_root
          File.expand_path(File.join("..", "..", "..", "templates"), __dir__)
        end

        def inherited(subclass)
          super

          description_file = File.expand_path(
            File.join(
              default_source_root,
              "descriptions",
              "#{subclass.generator_name}.md",
            ),
          )

          subclass.desc(File.read(description_file))
        rescue Errno::ENOENT # rubocop:disable Lint/SuppressedException
        end
      end

      private

      def empty_directory_with_keep_file(destination)
        empty_directory(destination, {})
        keep_file(destination)
      end

      def keep_file(destination)
        create_file(File.join(destination, ".keep"))
      end

      def append_template_to_file(destination, source, *args)
        partial = File.expand_path(find_in_source_paths(source))
        append_to_file(destination, File.read(partial, *args))
      end

      def prepend_template_to_file(destination, source, *args)
        partial = File.expand_path(find_in_source_paths(source))
        prepend_to_file(destination, File.read(partial, *args))
      end

      def inject_template_into_file(destination, source, *args)
        partial = File.expand_path(find_in_source_paths(source))
        inject_into_file(destination, File.read(partial), *args)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
hephaestus-0.8.16.1 lib/hephaestus/generators/base.rb
hephaestus-0.8.16 lib/hephaestus/generators/base.rb
hephaestus-0.8.15.5 lib/hephaestus/generators/base.rb
hephaestus-0.8.15.4 lib/hephaestus/generators/base.rb
hephaestus-0.8.15.3 lib/hephaestus/generators/base.rb
hephaestus-0.8.15.2 lib/hephaestus/generators/base.rb
hephaestus-0.8.15.1 lib/hephaestus/generators/base.rb
hephaestus-0.8.15 lib/hephaestus/generators/base.rb
hephaestus-0.8.14 lib/hephaestus/generators/base.rb
hephaestus-0.8.13 lib/hephaestus/generators/base.rb
hephaestus-0.8.12.2 lib/hephaestus/generators/base.rb