Sha256: 548ac3cdac29b6450b0450e0cbf8337cac0ebf9db3e46a588b12148821a7b5a5

Contents?: true

Size: 1.4 KB

Versions: 14

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

require "rails/generators"

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

      class_option :yml, type: :boolean
      class_option :app, type: :boolean, default: false
      argument :parameters, type: :array, default: [], banner: "param1 param2"

      # check_class_collision suffix: "Config"

      def run_install_if_needed
        return if ::Rails.root.join(static_config_root, "application_config.rb").exist?
        generate "anyway:install"
      end

      def create_config
        template "config.rb", File.join(config_root, class_path, "#{file_name}_config.rb")
      end

      def create_yml
        create_yml = options.fetch(:yml) { yes?("Would you like to generate a #{file_name}.yml file?") }
        return unless create_yml
        template "config.yml", File.join("config", "#{file_name}.yml")
      end

      private

      def static_config_root
        Anyway::Settings.autoload_static_config_path || Anyway::DEFAULT_CONFIGS_PATH
      end

      def config_root
        if options[:app]
          "app/configs"
        else
          static_config_root
        end
      end

      def needs_config_name?
        raise "No longer needed" if Gem::Version.new(Anyway::VERSION) >= Gem::Version.new("3.0.0")
        file_name.include?("_")
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
anyway_config-2.6.4 lib/generators/anyway/config/config_generator.rb
anyway_config-2.6.3 lib/generators/anyway/config/config_generator.rb
anyway_config-2.6.2 lib/generators/anyway/config/config_generator.rb
anyway_config-2.6.1 lib/generators/anyway/config/config_generator.rb
anyway_config-2.6.0 lib/generators/anyway/config/config_generator.rb
runger_config-3.0.0 lib/generators/anyway/config/config_generator.rb
runger_config-2.7.0 lib/generators/anyway/config/config_generator.rb
runger_config-2.6.1 lib/generators/anyway/config/config_generator.rb
runger_config-2.6.0 lib/generators/anyway/config/config_generator.rb
anyway_config-2.5.4 lib/generators/anyway/config/config_generator.rb
anyway_config-2.5.3 lib/generators/anyway/config/config_generator.rb
anyway_config-2.5.2 lib/generators/anyway/config/config_generator.rb
anyway_config-2.5.1 lib/generators/anyway/config/config_generator.rb
anyway_config-2.5.0 lib/generators/anyway/config/config_generator.rb