Sha256: 40a7579a4e8a76c1b2a63fa17568ac7ec913321c4dedb82375714b80d9ce6e6d

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

require "plutonium_generators"

module Pu
  module Pkg
    class FeatureGenerator < Rails::Generators::Base
      include PlutoniumGenerators::Generator

      source_root File.expand_path("templates", __dir__)

      desc "Create a plutonium feature package"

      argument :name

      def start
        validate_package_name package_name

        template "lib/engine.rb", "packages/#{package_namespace}/lib/engine.rb"

        %w[controllers interactions models policies presenters].each do |dir|
          directory "app/#{dir}", "packages/#{package_namespace}/app/#{dir}/#{package_namespace}"
        end
        create_file "packages/#{package_namespace}/app/views/#{package_namespace}/.keep"
      rescue => e
        exception "#{self.class} failed:", e
      end

      private

      def package_name
        name.classify
      end

      def package_namespace
        package_name.underscore
      end

      def package_type
        "Packaging::Feature"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plutonium-0.6.2 lib/generators/pu/pkg/feature/feature_generator.rb
plutonium-0.6.1 lib/generators/pu/pkg/feature/feature_generator.rb
plutonium-0.6.0 lib/generators/pu/pkg/feature/feature_generator.rb
plutonium-0.5.0 lib/generators/pu/pkg/feature/feature_generator.rb