Sha256: a21e80a007c642f130bb224bf7da44b40e26b5b2407dc6c9a5141e6fd1e3590b

Contents?: true

Size: 1.24 KB

Versions: 11

Compression:

Stored size: 1.24 KB

Contents

class ForgeCLI::ControllerModuleIncluder
  attr_reader :module_name

  def initialize(app, module_name)
    @app = app
    @module_name = module_name
  end

  def run!
    add_initializer_content
    add_controller_content
  end

  private
    def add_controller_content
      content = app_controller_content.gsub(
          'class ApplicationController < ActionController::Base',
          "class ApplicationController < ActionController::Base\n  include Forge::Controllers::#{module_name.camelize}\n"
      )
      File.open(app_controller_path, 'w') { |f| f.puts content }
    end

    def add_initializer_content
      content = "require 'forge/shared_controller_methods/#{module_name.downcase.underscore.gsub(/\s/, '_')}.rb'\n" + forge_initializer_content
      File.open(forge_initializer_path, 'w') { |f| f.puts content }
    end

    def app_controller_path
      File.join(@app, 'app', 'controllers', 'application_controller.rb')
    end

    def app_controller_content
      @app_controller_content ||= File.read(app_controller_path)
    end

    def forge_initializer_path
      File.join(@app, 'config', 'initializers', 'forge.rb')
    end

    def forge_initializer_content
      @forge_initializer_content ||= File.read(forge_initializer_path)
    end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
forge-cli-0.1.10 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.9 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.8 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.7 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.6 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.5 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.4 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.3 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.2 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.1 lib/forge-cli/controller_module_includer.rb
forge-cli-0.1.0 lib/forge-cli/controller_module_includer.rb