module Appraisal::Utils

Contains methods for various operations

Public Class Methods

bundler_version() click to toggle source
# File lib/appraisal/utils.rb, line 55
def self.bundler_version
  Gem::Specification.
    detect { |spec| spec.name == "bundler" }.
    version.
    to_s
end
format_arguments(arguments) click to toggle source
# File lib/appraisal/utils.rb, line 36
def self.format_arguments(arguments)
  unless arguments.empty?
    arguments.map { |object| format_string(object, false) }.join(', ')
  end
end
format_hash_value(key, value) click to toggle source
# File lib/appraisal/utils.rb, line 25
def self.format_hash_value(key, value)
  key = format_string(key, true)
  value = format_string(value, true)

  if key.start_with?(":")
    "#{key.sub(/^:/, "")}: #{value}"
  else
    "#{key} => #{value}"
  end
end
format_string(object, enclosing_object = false) click to toggle source
# File lib/appraisal/utils.rb, line 8
def self.format_string(object, enclosing_object = false)
  case object
  when Hash
    items = object.map do |key, value|
      format_hash_value(key, value)
    end

    if enclosing_object
      "{ #{items.join(', ')} }"
    else
      items.join(', ')
    end
  else
    object.inspect
  end
end
join_parts(parts) click to toggle source
# File lib/appraisal/utils.rb, line 42
def self.join_parts(parts)
  parts.reject(&:nil?).reject(&:empty?).join("\n\n").strip
end
prefix_path(path) click to toggle source
# File lib/appraisal/utils.rb, line 46
def self.prefix_path(path)
  if path !~ /^(?:\/|\S:)/ && path !~ /^\S+:\/\// && path !~ /^\S+@\S+:/
    cleaned_path = path.gsub(/(^|\/)\.(?:\/|$)/, "\\1")
    File.join("..", cleaned_path)
  else
    path
  end
end
support_parallel_installation?() click to toggle source
# File lib/appraisal/utils.rb, line 4
def self.support_parallel_installation?
  Gem::Version.create(Bundler::VERSION) >= Gem::Version.create('1.4.0.pre.1')
end