class CarthageDependency

Representation of a Cartfile.resolved entry. @see github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#origin

Attributes

origin[R]
source[R]
version[R]

Public Class Methods

new(args) click to toggle source
# File lib/carthage_dependency.rb, line 21
def initialize(args)
  raise AppError.new, "Expected Symbol for origin '#{args[:origin]}'" unless args[:origin].kind_of? Symbol
  raise AppError.new, "Unrecognized origin '#{args[:oriign]}'" unless [:github, :git, :binary].include?(args[:origin])

  @origin = args[:origin]
  @source = args[:source]
  @version = args[:version]
end
parse_cartfile_resolved_line(line) click to toggle source

Parses Cartfile.resolved dependency entry, e.g.

github "CocoaLumberjack/CocoaLumberjack" "3.2.1"
# File lib/carthage_dependency.rb, line 7
def parse_cartfile_resolved_line(line)
  line.strip!
  matches = line.match(/^(\w+)\s+\"([^\"]+)\"(\s+\"([^\"]+)\")$/)
  return nil if matches.nil?
  if matches.length == 5
    CarthageDependency.new(origin: matches[1].to_sym, source: matches[2], version: matches[4])
  else
    nil
  end
end

Public Instance Methods

guessed_framework_basename() click to toggle source

Since one Cartfile.resolved entry may produce multiple differently named frameworks, this is an entry point to identifying a framework name.

# File lib/carthage_dependency.rb, line 36
def guessed_framework_basename
  case @origin
  when :github
    @source.split("/").last
  when :git
    filename = @source.split("/").last
    filename.chomp(".git")
  when :binary
    filename = @source.split("/").last
    filename.chomp(".json")
  else
    raise AppError.new, "Unrecognized origin '#{@origin}'"
  end
end
new_version_file() click to toggle source
# File lib/carthage_dependency.rb, line 30
def new_version_file
  VersionFile.new(version_filepath)
end
to_s() click to toggle source
# File lib/carthage_dependency.rb, line 65
def to_s
  "#{@origin.to_s} \"#{@source}\" \"#{@version}\""
end
verify_version_in_version_file(version_file) click to toggle source
# File lib/carthage_dependency.rb, line 59
def verify_version_in_version_file(version_file)
  if @version != version_file.version
    raise OutdatedFrameworkBuildError.new(guessed_framework_basename, version_file.version, @version)
  end
end
version_filename() click to toggle source
# File lib/carthage_dependency.rb, line 51
def version_filename
  ".#{guessed_framework_basename}.version"
end
version_filepath() click to toggle source
# File lib/carthage_dependency.rb, line 55
def version_filepath
  File.join(CARTHAGE_BUILD_DIR, version_filename)
end