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