module CapistranoMulticonfigParallel::InternalHelper

internal helpers for logging mostly

Public Instance Methods

arg_is_in_default_config?(arg) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 52
def arg_is_in_default_config?(arg)
  default_config_keys.find { |key| key == arg.split('=')[0].tr('--', '') }.present?
end
check_file(file, filename) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 104
def check_file(file, filename)
  file.file? && file.basename.to_s.downcase == filename.to_s.downcase
end
create_log_file(file_path) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 155
def create_log_file(file_path)
  return if file_path.blank?
  directory = File.dirname(file_path)
  FileUtils.mkdir_p(directory) unless File.directory?(directory)
  FileUtils.touch(file_path) unless File.file?(file_path)
end
custom_commands() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 151
def custom_commands
  ['deploy_multi_stages']
end
default_config_keys() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 48
def default_config_keys
  default_internal_config.map { |array| array[0].to_s }.concat([CapistranoMulticonfigParallel.env_job_key_id, 'capistrano_version'])
end
default_internal_config() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 35
def default_internal_config
  @default_config ||= fetch_default_internal_config
  @default_config
end
default_internal_configuration_params(new_config) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 56
def default_internal_configuration_params(new_config)
  array = []
  new_config.each do |hash|
    array << [hash['name'], sliced_default_config(hash)]
  end
  array
end
detect_root() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 130
def detect_root
  if find_env_multi_cap_root
    Pathname.new(find_env_multi_cap_root)
  elsif defined?(::Rails)
    ::Rails.root
  else
    root = try_detect_file
    fail_capfile_not_found(root)
    root
  end
end
enable_main_log_file() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 162
def enable_main_log_file
  create_log_file(main_log_file)
  log_file = File.open(main_log_file, 'w')
  log_file.sync = true
end
fail_capfile_not_found(root) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 92
def fail_capfile_not_found(root)
  fail "Can't detect Capfile in the  application root".red if root.blank?
end
fetch_default_internal_config() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 40
def fetch_default_internal_config
  config = YAML.load_file(internal_config_file)['default_config']
  new_config = config.map do |hash|
    setup_default_configuration_types(hash)
  end
  default_internal_configuration_params(new_config)
end
find_config_type(type) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 75
def find_config_type(type)
  type = type.to_s
  %w(boolean filename string).include?(type) ? type.delete(':').to_sym : type.to_s.constantize
end
find_env_multi_cap_root() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 80
def find_env_multi_cap_root
  ENV['MULTI_CAP_ROOT']
end
find_file_by_names(custom_path = detect_root, names = ['capfile']) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 112
def find_file_by_names(custom_path = detect_root, names = ['capfile'])
  names = names.is_a?(Array) ? names : [names]
  pathnames = names.collect do |name|
    Pathname.new(custom_path).children.find { |file| check_file(file, name) }
  end
  pathnames.present? && pathnames.is_a?(Array) ? pathnames.compact : pathnames
end
find_file_in_directory(root, filename) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 108
def find_file_in_directory(root, filename)
  root.children.find { |file| check_file(file, filename) }.present? || pathname_is_root?(root)
end
get_current_gem_name() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 6
def get_current_gem_name
    searcher = if Gem::Specification.respond_to? :find
      # ruby 2.0
      Gem::Specification
    elsif Gem.respond_to? :searcher
      # ruby 1.8/1.9
      Gem.searcher.init_gemspecs
    end
    spec = unless searcher.nil?
      searcher.find do |spec|
        File.fnmatch(File.join(spec.full_gem_path,'*'), __FILE__)
      end
    end
    spec.name if spec.present?
  end
internal_config_directory() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 27
def internal_config_directory
 File.join(root.to_s, get_current_gem_name, 'configuration')
end
internal_config_file() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 31
def internal_config_file
  File.join(internal_config_directory, 'default.yml')
end
log_directory() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 142
def log_directory
  log_dir = configuration.log_dir || detect_root.to_s
  File.join(log_dir.to_s, 'log')
end
main_log_file() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 147
def main_log_file
  File.join(log_directory, 'multi_cap.log')
end
multi_level_prop(config, prop) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 22
def multi_level_prop(config, prop)
  prop.split('.').each { |new_prop| config = config[new_prop] }
  config
end
pathname_is_root?(root) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 88
def pathname_is_root?(root)
  root.root?
end
pwd_directory() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 100
def pwd_directory
  Pathname.new(FileUtils.pwd)
end
pwd_parent_dir() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 96
def pwd_parent_dir
  pwd_directory.directory? ? pwd_directory : pwd_directory.parent
end
root() click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 84
def root
  File.expand_path(File.dirname(File.dirname(__dir__)))
end
setup_default_configuration_types(hash) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 68
def setup_default_configuration_types(hash)
  hash.each_with_object({}) do |(key, value), memo|
    memo[key] = (key == 'type') ? find_config_type(value) : value
    memo
  end
end
sliced_default_config(hash) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 64
def sliced_default_config(hash)
  hash.slice('type', 'description', 'default', 'required')
end
try_detect_file(filename = 'capfile', root = pwd_parent_dir ) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 125
def try_detect_file(filename = 'capfile', root = pwd_parent_dir )
  root = root.parent until find_file_in_directory(root, filename)
  pathname_is_root?(root) ? nil : root
end
try_detect_file_in_dir(filename = 'multi_cap.yml', dirs = ['config']) click to toggle source
# File lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb, line 120
def try_detect_file_in_dir(filename = 'multi_cap.yml', dirs = ['config'])
  root = dirs.is_a?(Array) && dirs.present? ? Pathname.new(File.join(FileUtils.pwd, *dirs)) : pwd_parent_dir
  try_detect_file(filename, root)
end