Sha256: f0ca148a0140390352cfcadf9d1e95189c2d2337ad84f5e803484ecc19ac2e14

Contents?: true

Size: 1.07 KB

Versions: 8

Compression:

Stored size: 1.07 KB

Contents

module Madmin
  module GeneratorHelpers
    def call_generator(generator, *args)
      Rails::Generators.invoke(generator, args, generator_options)
    end

    def route_namespace_exists?
      File.readlines(Rails.root.join("config/routes.rb")).grep(/namespace :madmin/).size > 0
    end

    # Method copied from Rails 6.1 master
    def route(routing_code, namespace: nil, sentinel: nil, indentation: 2)
      routing_code = Array(namespace).reverse.reduce(routing_code) { |code, ns|
        "namespace :#{ns} do\n#{indent(code, 2)}\nend"
      }

      log :route, routing_code
      sentinel ||= /\.routes\.draw do\s*\n/m

      in_root do
        inject_into_file "config/routes.rb", optimize_indentation(routing_code, indentation), after: sentinel, verbose: false, force: false
      end
    end

    # Method copied from Rails 6.1 master
    def optimize_indentation(value, amount = 0)
      return "#{value}\n" unless value.is_a?(String)
      "#{value.strip_heredoc.indent(amount).chomp}\n"
    end

    private

    def generator_options
      {behavior: behavior}
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
madmin-1.2.0 lib/madmin/generator_helpers.rb
madmin-1.1.0 lib/madmin/generator_helpers.rb
madmin-1.0.2 lib/madmin/generator_helpers.rb
madmin-1.0.1 lib/madmin/generator_helpers.rb
madmin-1.0.0 lib/madmin/generator_helpers.rb
madmin-1.0.0.beta2 lib/madmin/generator_helpers.rb
madmin-1.0.0.beta1 lib/madmin/generator_helpers.rb
madmin-0.1.1 lib/madmin/generator_helpers.rb