class MetaCommit::ApplicationInterface

Public Instance Methods

boot_container_with_config(configuration_path) click to toggle source

@param [String] configuration_path @return [MetaCommit::Container]

# File lib/meta_commit/cli.rb, line 104
def boot_container_with_config(configuration_path)
  project_configuration = MetaCommit::Configuration.new.fill_from_yaml_file(configuration_path)
  configuration_store = MetaCommit::ConfigurationStore.new(project_configuration)

  container = MetaCommit::Container.new
  container.boot(configuration_store)
end
changelog(from_tag=nil, to_tag=nil) click to toggle source
# File lib/meta_commit/cli.rb, line 29
def changelog(from_tag=nil, to_tag=nil)
  repository_path = options[:directory]
  filename = options[:filename]
  repository = MetaCommit::Git::Repo.new(repository_path)
  from_tag_commit = repository.commit_of_tag(from_tag)
  to_tag_commit = repository.commit_of_tag(to_tag)
  container = boot_container_with_config(File.join(repository_path, MetaCommit::ConfigurationStore::META_COMMIT_CONFIG_FILENAME))

  examiner = MetaCommit::Changelog::Commands::CommitDiffExaminer.new(
      container.resolve(:parse_command),
      container.resolve(:contextual_ast_node_factory),
      container.resolve(:diff_factory)
  )

  meta = examiner.meta(repository, from_tag_commit, to_tag_commit)

  adapter = MetaCommit::Changelog::Adapters::Changelog.new(repository.dir, filename, to_tag, to_tag_commit.time.strftime('%Y-%m-%d'))
  change_saver = MetaCommit::Services::ChangeSaver.new(repository, adapter)
  change_saver.store_meta(meta)
  say("added version [#{to_tag}] to #{filename}")
end
index() click to toggle source
# File lib/meta_commit/cli.rb, line 54
def index
  repository_path = options[:directory]
  repository = MetaCommit::Git::Repo.new(repository_path)
  container = boot_container_with_config(File.join(repository_path, MetaCommit::ConfigurationStore::META_COMMIT_CONFIG_FILENAME))

  examiner = MetaCommit::Index::Commands::DiffExaminer.new(
      container.resolve(:parse_command),
      container.resolve(:contextual_ast_node_factory),
      container.resolve(:diff_factory)
  )

  meta = examiner.meta(repository)

  adapter = MetaCommit::Index::Adapters::GitNotes.new(repository.path)
  change_saver = MetaCommit::Services::ChangeSaver.new(repository, adapter)
  change_saver.store_meta(meta)
  say('repository successfully indexed')
end
init() click to toggle source
# File lib/meta_commit/cli.rb, line 77
def init
  repository_path = options[:directory]
  extensions = options[:extensions]

  config_file = File.join(repository_path, MetaCommit::ConfigurationStore::META_COMMIT_CONFIG_FILENAME)

  return say('Configuration file exists. You repository is already meta_commit compatible.') if File.exist?(config_file)

  template = File.read(MetaCommit::ConfigurationStore::TEMPLATE_FILE)
  configuration = template.gsub(/\#{extensions}/, extensions.map {|extension| "  - #{extension}"}.join("\n"))

  out_file = File.new(config_file, 'w')
  out_file.puts(configuration)
  out_file.close

  say("The configuration file #{MetaCommit::ConfigurationStore::META_COMMIT_CONFIG_FILENAME} added")
end
message() click to toggle source
# File lib/meta_commit/cli.rb, line 9
def message
  repository_path = options[:directory]
  repository = MetaCommit::Git::Repo.new(repository_path)
  container = boot_container_with_config(File.join(repository_path, MetaCommit::ConfigurationStore::META_COMMIT_CONFIG_FILENAME))

  examiner = MetaCommit::Message::Commands::DiffIndexExaminer.new(
      container.resolve(:parse_command),
      container.resolve(:contextual_ast_node_factory),
      container.resolve(:diff_factory)
  )

  meta = examiner.index_meta(repository)

  say(MetaCommit::Message::Formatters::CommitMessageBuilder.new.build(meta))
end
version() click to toggle source
# File lib/meta_commit/cli.rb, line 97
def version
  say(MetaCommit::VERSION)
end