lib/giteaucrat/runner.rb in giteaucrat-0.0.7 vs lib/giteaucrat/runner.rb in giteaucrat-0.0.8

- old
+ new

@@ -1,62 +1,63 @@ # coding: utf-8 +# frozen_string_literal: true -################################################ -# © Alexander Semyonov, 2013—2013, MIT License # -# Author: Alexander Semyonov <al@semyonov.us> # -################################################ +############################################ +# © Alex Semyonov, 2013—2017, MIT License # +# Author: Alex Semyonov <alex@semyonov.us> # +############################################ require 'giteaucrat' require 'thor' require 'yaml' module Giteaucrat class Runner < Thor class_option :git, group: :git - class_option :timeout, default: 30, group: :git + class_option :timeout, default: 30, group: :git, type: :numeric class_option :path, default: Dir.pwd, desc: 'Path to project that needs some bureaucracy.' class_option :config, default: ::File.join(Dir.pwd, 'config', 'giteaucrat.yml'), desc: 'Giteaucrat configuration', group: :giteaucrat class_option :commit_keyword, - aliases: %w(-i), + aliases: %w[-i], default: '#giteaucrat', desc: 'Commit keyword to prepend giteaucrat commits (to ignore authorship of this commit)', group: :giteaucrat class_option :copyright_owner, - aliases: %w(-o), + aliases: %w[-o], default: `git config user.name`.chomp, desc: 'Company or owner name to put in copyright header', group: :giteaucrat class_option :copyright_year, - aliases: %w(-y), + aliases: %w[-y], type: :numeric, desc: 'Start year of copyright', group: :giteaucrat class_option :copyright_format, - aliases: %w(-f), + aliases: %w[-f], default: '© %{owner}, %{years}', desc: 'Start year of copyright', group: :giteaucrat class_option :license, - aliases: %w(-l), + aliases: %w[-l], desc: 'License to put in copyright footer' class_option :include_encoding, type: :boolean, default: true, - aliases: %w(-e), + aliases: %w[-e], desc: 'Put encoding in copyright footer', group: :giteaucrat class_option :commit, type: :boolean, - aliases: %w(-c), + aliases: %w[-c], desc: 'Commit updated copyrights', group: :giteaucrat class_option :patterns, type: :array, - aliases: %w(-f), + aliases: %w[-f], desc: 'Files to copyright', group: :giteaucrat desc 'copyrights', 'Update copyright information in files' @@ -69,11 +70,10 @@ private def defaults @defaults ||= begin - YAML::ENGINE.yamler = 'syck' Encoding.default_external = 'utf-8' Encoding.default_internal = 'utf-8' options = Thor::CoreExt::HashWithIndifferentAccess.new(self.options.dup) options[:config] = ::File.join(options[:path], 'config', 'giteaucrat.yml') @@ -81,20 +81,22 @@ if ::File.file?(options[:config]) config = YAML.load_file(options[:config]) || {} options.merge!(config) end - config = options.inject({}) do |config, (key, value)| - config[key] = value unless %w(config git path timeout commit).include?(key); config + config = options.each_with_object({}) do |(key, value), result| + unless %w[config git path timeout commit].include?(key) + result[key] = value + end end.to_yaml unless ::File.file?(options[:config]) FileUtils.mkdir_p(::File.dirname(options[:config])) ::File.write(options[:config], config) end Dir.chdir(path) - Repo.defaults = {git: options[:git], git_timeout: options[:timeout]} + Repo.defaults = { git: options[:git], git_timeout: options[:timeout].to_s } options end end def path