Sha256: 619b6a51fff015261ec0e15371031a2603213777c6270d825e90addb868f22ec
Contents?: true
Size: 1.25 KB
Versions: 90
Compression:
Stored size: 1.25 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 update? ? UpdateVersionAndGenerateTests : GenerateTests end def update? @options[:update] end def implementation(slug) exercise = Exercise.new(slug: slug) repository = Repository.new(paths: paths, slug: slug) LoggingImplementation.new( implementation: Implementation.new(repository: repository, exercise: exercise), 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
90 entries across 90 versions & 1 rubygems