Sha256: ee3e751650637d129c58915505aa188b0c9b7f29bdfa8e04a79332a86585dac4
Contents?: true
Size: 1.4 KB
Versions: 101
Compression:
Stored size: 1.4 KB
Contents
require 'delegate' module Generator class Repository include Files::TrackFiles include Files::MetadataFiles include TemplateValuesFactory def initialize(paths:, exercise_name:) @paths = paths @exercise_name = exercise_name end attr_reader :paths, :exercise_name def version tests_version.to_i end def update_tests_version tests_version.increment end def update_example_solution example_solution.update_version(version) end def create_tests_file minitest_tests.generate( template: tests_template.to_s, values: template_values ) end end # This exists to give us a clue as to what we are delegating to. class RepositoryDelegator < SimpleDelegator end # A repository that also logs its progress. class LoggingRepository < RepositoryDelegator def initialize(repository:, logger:) __setobj__ @repository = repository @logger = logger end def update_tests_version @repository.update_tests_version @logger.debug "Incremented tests version to #{version}" end def update_example_solution @repository.update_example_solution @logger.debug "Updated version in example solution to #{version}" end def create_tests_file @repository.create_tests_file @logger.info "Generated #{exercise_name} tests version #{version}" end end end
Version data entries
101 entries across 101 versions & 1 rubygems