module Bauk::Gen
Constants
- VERSION
Public Class Methods
config(generators = [])
click to toggle source
# File lib/bauk/gen.rb, line 35 def self.config(generators = []) config = Bauk::Gen::Configs::Files.new.generate_config generators = parse_generators generators, config unless log.info? puts YAML.dump config return end config = {} Dir.chdir(config[:base_dir] || '.') do generators.each do |generator| config[generator] = load_generator(generator, config.deep_merge!(config[:generators]&.[](generator) || {})).config end end puts YAML.dump config end
generate(generators = [])
click to toggle source
# File lib/bauk/gen.rb, line 23 def self.generate(generators = []) config = Bauk::Gen::Configs::Files.new.generate_config log.debug "Using generated config: #{config}" generators = parse_generators generators, config Dir.chdir(config[:base_dir] || '.') do generators.each do |generator| load_generator(generator, config.deep_merge!(config[:generators]&.[](generator) || {})).generate end end end
init(generators = [])
click to toggle source
# File lib/bauk/gen.rb, line 53 def self.init(generators = []) generators = parse_generators generators if generators.empty? log.error "Adding default generator (You can specify init with a custom generator using the -g/--generator flag)" generators = ['bauk_gen'] end generators.each do |generator| load_generator(generator, {}).init end end
load_generator(module_name, config)
click to toggle source
# File lib/bauk/gen.rb, line 94 def self.load_generator(module_name, config) parts = module_name.to_s.split(%r{-|/|::|\s+|_}) require "#{parts.join('/').downcase}/generator" Object.const_get("#{parts.map(&:capitalize).join('::')}::Generator").new config end
parse()
click to toggle source
# File lib/bauk/gen.rb, line 64 def self.parse() generators = [] Bauk::Utils::BaseParser.new( opts: lambda do |opts| opts.on('-c', '--config key[=val]', 'Override config items from the command-line') do |conf| # TODO raise "--config argument is not yet implemented" end opts.on('-g', '--generator [generator-module]', 'The generators to run') do |gen| generators << gen end end, generate: { aliases: %i[gen g], info: 'Run the generation', action: -> { generate generators } }, config: { aliases: %i[conf c], info: 'Dump the config. Add one verbose level to dump the fully generated config', action: -> { config generators } }, init: { aliases: %i[i], info: 'Initialise the generator here with some basic examples', action: -> { init generators } } ).parse end
parse_generators(generators = [], config = {})
click to toggle source
# File lib/bauk/gen.rb, line 15 def self.parse_generators(generators = [], config = {}) if generators.empty? generators = config[:generators]&.keys || [] end log.error "No generators found" if generators.empty? generators end