class PodAlexandria::Lockfile
Attributes
path[R]
Public Class Methods
new(path)
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 5 def initialize(path) @path = path end
Public Instance Methods
changed_specs(lockfile)
click to toggle source
collect changed specs (changed checksum, checkout or deleted pod)
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 18 def changed_specs(lockfile) changed_checksums = spec_checksums.select { |k,v| v != lockfile.spec_checksums[k] }.keys changed_checkout = checkout_options.select { |k,v| v != lockfile.checkout_options[k] }.keys deleted_specs = lockfile.spec_checksums.keys - spec_checksums.keys changed_checksums.to_set.merge(changed_checksums).merge(deleted_specs) end
copy_to(lockfile)
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 42 def copy_to(lockfile) FileUtils.copy_file(path, lockfile.path) end
delete()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 46 def delete FileUtils.remove_file(path, true) end
exists?()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 9 def exists? File.file?(path) end
matches?(lockfile)
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 13 def matches?(lockfile) FileUtils.identical?(path, lockfile.path) end
specs_affected_by(specs)
click to toggle source
collect affected frameworks (and filter out subspecs)
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 27 def specs_affected_by(specs) affected = specs loop do items = pods.select { |s| s.is_a?(Hash) && s.values.flatten.any? { |ss| affected.include? ss.split.first } }.map { |s| s.keys.first.split.first } break if affected.superset? (affected + items) affected.merge(items) end affected = affected & spec_checksums.keys end
Protected Instance Methods
checkout_options()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 60 def checkout_options contents.fetch('CHECKOUT OPTIONS', {}) end
contents()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 52 def contents @contents ||= YAML.load_file(path) end
pods()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 64 def pods contents.fetch('PODS', []) end
spec_checksums()
click to toggle source
# File lib/cocoapods-alexandria/rome/lockfile.rb, line 56 def spec_checksums contents.fetch('SPEC CHECKSUMS', {}) end