Module: Appraisal::Utils

Defined in:
lib/appraisal/utils.rb

Overview

Contains methods for various operations

Class Method Summary collapse

Class Method Details

.bundler_versionObject



55
56
57
58
59
60
# 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) ⇒ Object



36
37
38
39
40
# 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) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# 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) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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) ⇒ Object



42
43
44
# 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) ⇒ Object



46
47
48
49
50
51
52
53
# 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?Boolean

Returns:

  • (Boolean)


4
5
6
# 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