module Madmin::GeneratorHelpers

Constants

ROUTES_FILE

Public Instance Methods

call_generator(generator, *args) click to toggle source
# File lib/madmin/generator_helpers.rb, line 5
def call_generator(generator, *args)
  Rails::Generators.invoke(generator, args, generator_options)
end
optimize_indentation(value, amount = 0) click to toggle source

Method copied from Rails 6.1 master

# File lib/madmin/generator_helpers.rb, line 32
def optimize_indentation(value, amount = 0)
  return "#{value}\n" unless value.is_a?(String)
  "#{value.strip_heredoc.indent(amount).chomp}\n"
end
rails6_1_and_up?() click to toggle source
# File lib/madmin/generator_helpers.rb, line 13
def rails6_1_and_up?
  Gem.loaded_specs["rails"].version >= Gem::Version.new(6.1)
end
route(routing_code, namespace: nil, sentinel: nil, indentation: 2, file: default_routes_file) click to toggle source

Method copied from Rails 6.1 master

# File lib/madmin/generator_helpers.rb, line 18
def route(routing_code, namespace: nil, sentinel: nil, indentation: 2, file: default_routes_file)
  routing_code = Array(namespace).reverse.reduce(routing_code) { |code, ns|
    "namespace :#{ns} do\n#{indent(code, 2)}\nend"
  }

  log :route, routing_code
  sentinel ||= default_sentinel(file)

  in_root do
    inject_into_file file, optimize_indentation(routing_code, indentation), after: sentinel, verbose: false, force: false
  end
end
route_namespace_exists?() click to toggle source
# File lib/madmin/generator_helpers.rb, line 9
def route_namespace_exists?
  File.readlines(Rails.root.join(default_routes_file)).grep(/namespace :madmin/).size > 0
end

Private Instance Methods

default_routes_file() click to toggle source
# File lib/madmin/generator_helpers.rb, line 47
def default_routes_file
  rails6_1_and_up? ? ROUTES_FILE[:separated] : ROUTES_FILE[:default]
end
default_sentinel(file) click to toggle source
# File lib/madmin/generator_helpers.rb, line 43
def default_sentinel(file)
  file.eql?(ROUTES_FILE[:default]) ? /\.routes\.draw do\s*\n/m : /namespace :madmin do\s*\n/m
end
generator_options() click to toggle source
# File lib/madmin/generator_helpers.rb, line 51
def generator_options
  {behavior: behavior}
end
separated_routes_file?() click to toggle source
# File lib/madmin/generator_helpers.rb, line 39
def separated_routes_file?
  default_routes_file.eql?(ROUTES_FILE[:separated])
end