Sha256: 45db22d316d0789b83211768579dc014fca1e2c81f44f25450fa6fa66c4bef99
Contents?: true
Size: 1.15 KB
Versions: 24
Compression:
Stored size: 1.15 KB
Contents
require 'logger' module Generator class CommandLine def initialize(paths) @paths = paths end def parse(args) parser = GeneratorOptparser.new(args, paths) @options = parser.options generators if parser.options_valid? end private attr_reader :paths def generators implementations.map { |slug| generator(implementation(slug)) } end def implementations @options[:all] ? Files::GeneratorCases.available(paths.track) : [@options[:slug]] end def generator(implementation) generator_class.new(implementation) end def generator_class freeze? ? GenerateTests : UpdateVersionAndGenerateTests end def freeze? @options[:freeze] || @options[:all] end def implementation(slug) LoggingImplementation.new( implementation: Implementation.new(paths: paths, slug: slug), logger: logger ) end def logger logger = Logger.new($stdout) logger.formatter = proc { |_severity, _datetime, _progname, msg| "#{msg}\n" } logger.level = @options[:verbose] ? Logger::DEBUG : Logger::INFO logger end end end
Version data entries
24 entries across 24 versions & 1 rubygems