Sha256: 1a3ad2743726d761cd06383acd541bcfffad442fb7a255bdf5dd547814c3a130

Contents?: true

Size: 1.6 KB

Versions: 26

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true
require "rails"

module Alchemy
  module Generators
    class Base < ::Rails::Generators::Base
      class_option :template_engine, type: :string, aliases: "-e", desc: 'Template engine for the views. Available options are "erb", "haml", and "slim".'

      private

      def conditional_template(source, destination)
        files = Dir.glob(destination.gsub(/\.([a-z]+)$/, "*"))
        if files.any?
          ext = File.extname(files.first)[1..-1]

          # If view already exists using a different template engine, change
          # source and destination file names to use that engine.
          if ext != template_engine.to_s
            say_status :warning, "View uses unexpected template engine '#{ext}'.", :cyan
            destination = destination.gsub(/#{template_engine}$/, ext)
            source = source.gsub(/#{template_engine}$/, ext)
          end
        end

        template source, destination
      end

      def template_engine
        # Rails is clever enough to default this to whatever template
        # engine is configured through its generator configuration,
        # but we'll default it to erb anyway, just in case.
        options[:template_engine] || "erb"
      end

      def load_alchemy_yaml(name)
        YAML.safe_load(
          ERB.new(File.read(Rails.root.join("config", "alchemy", name))).result,
          permitted_classes: YAML_PERMITTED_CLASSES,
          aliases: true,
        )
      rescue Errno::ENOENT
        puts "\nERROR: Could not read config/alchemy/#{name} file. Please run: `rails generate alchemy:install`"
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
alchemy_cms-6.1.10 lib/generators/alchemy/base.rb
alchemy_cms-6.1.9 lib/generators/alchemy/base.rb
alchemy_cms-6.1.8 lib/generators/alchemy/base.rb
alchemy_cms-6.1.7 lib/generators/alchemy/base.rb
alchemy_cms-6.1.6 lib/generators/alchemy/base.rb
alchemy_cms-6.1.5 lib/generators/alchemy/base.rb
alchemy_cms-6.0.14 lib/generators/alchemy/base.rb
alchemy_cms-6.1.4 lib/generators/alchemy/base.rb
alchemy_cms-7.0.0.pre.a lib/generators/alchemy/base.rb
alchemy_cms-6.0.13 lib/generators/alchemy/base.rb
alchemy_cms-6.1.3 lib/generators/alchemy/base.rb
alchemy_cms-6.1.2 lib/generators/alchemy/base.rb
alchemy_cms-6.1.1 lib/generators/alchemy/base.rb
alchemy_cms-6.1.0 lib/generators/alchemy/base.rb
alchemy_cms-6.0.12 lib/generators/alchemy/base.rb
alchemy_cms-6.0.11 lib/generators/alchemy/base.rb
alchemy_cms-6.0.10 lib/generators/alchemy/base.rb
alchemy_cms-6.0.9 lib/generators/alchemy/base.rb
alchemy_cms-6.0.8 lib/generators/alchemy/base.rb
alchemy_cms-6.0.7 lib/generators/alchemy/base.rb