Sha256: ac2b2cf36d90c42b98b35da08b2e433e68e701899ad058f2daa6907b1117baa6

Contents?: true

Size: 1.47 KB

Versions: 4

Compression:

Stored size: 1.47 KB

Contents

require 'active_support/core_ext/string/inflections'

module Rails
  module Upgrading
    class NewConfigurationGenerator
      def generate_new_configurations
        if has_environment?
          generate_new_application_rb
        else
          raise FileNotFoundError, "Can't find environment.rb [config/environment.rb]!"
        end
      end

      def has_environment?
        File.exists?("config/environment.rb")
      end

      def environment_code
        File.open("config/environment.rb").read
      end

      def generate_new_application_rb
        environment_file = environment_code

        initializer_code = ""
        if matches = environment_file.match(/Rails\:\:Initializer\.run do \|config\|\n(.*)\nend/m)
          initializer_code = matches[1]
        else
          raise "There doesn't seem to be a real environment.rb in your app.  Are you sure config/environment.rb has the right contents?"
        end

        frame = "# Put this in config/application.rb
require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(:default, Rails.env) if defined?(Bundler)

module #{app_name.classify}
  class Application < Rails::Application
    config.autoload_paths += [config.root.join('lib')]
    config.encoding = 'utf-8'
%s
  end
end"

        frame % [indent(initializer_code)]
      end

      def indent(text)
        text.split("\n").map {|l| "  #{l}"}.join("\n")
      end

      def app_name
        File.basename(Dir.pwd)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
trusty-layouts-extension-1.0.2 vendor/plugins/rails_upgrade/lib/new_configuration_generator.rb
trusty-layouts-extension-1.0.1 vendor/plugins/rails_upgrade/lib/new_configuration_generator.rb
trusty-layouts-extension-1.0.0 vendor/plugins/rails_upgrade/lib/new_configuration_generator.rb
trusty-cms-1.0.1 vendor/plugins/rails_upgrade/lib/new_configuration_generator.rb