Class: PodPrebuild::CacheValidationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-binary-ht/cache/validation_result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(missed_with_reasons = {}, hit = Set.new) ⇒ CacheValidationResult

Returns a new instance of CacheValidationResult.



5
6
7
8
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 5

def initialize(missed_with_reasons = {}, hit = Set.new)
  @missed_with_reasons = missed_with_reasons
  @hit = hit.to_set - missed_with_reasons.keys
end

Instance Attribute Details

#hitObject (readonly)

Returns the value of attribute hit.



3
4
5
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 3

def hit
  @hit
end

#missed_with_reasonsObject (readonly)

Returns the value of attribute missed_with_reasons.



3
4
5
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 3

def missed_with_reasons
  @missed_with_reasons
end

Instance Method Details

#allObject



10
11
12
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 10

def all
  (hit + missed).to_set
end

#discard(names) ⇒ Object



50
51
52
53
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 50

def discard(names)
  base_names = names.map { |name| name.split("/")[0] }.to_set
  reject { |name| base_names.include?(name.split("/")[0]) }
end

#hit?(name) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 22

def hit?(name)
  @hit.include?(name)
end

#include?(name) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 26

def include?(name)
  missed?(name) || hit?(name)
end

#keep(names) ⇒ Object



45
46
47
48
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 45

def keep(names)
  base_names = names.map { |name| name.split("/")[0] }.to_set
  select { |name| base_names.include?(name.split("/")[0]) }
end

#merge(other) ⇒ Object



30
31
32
33
34
35
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 30

def merge(other)
  PodPrebuild::CacheValidationResult.new(
    @missed_with_reasons.merge(other.missed_with_reasons),
    @hit + other.hit
  )
end

#missedObject



14
15
16
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 14

def missed
  @missed_with_reasons.keys.to_set
end

#missed?(name) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 18

def missed?(name)
  @missed_with_reasons.key?(name)
end


66
67
68
69
70
71
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 66

def print_summary
  Pod::UI.puts "Cache validation: hit (#{@hit.count}) #{@hit.to_a}"
  @missed_with_reasons.each do |name, reason|
    Pod::UI.puts "Cache validation: missed #{name}. Reason: #{reason}".yellow
  end
end

#reject(&predicate) ⇒ Object



62
63
64
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 62

def reject(&predicate)
  select { |name| !predicate.call(name) }
end

#select(&predicate) ⇒ Object



55
56
57
58
59
60
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 55

def select(&predicate)
  PodPrebuild::CacheValidationResult.new(
    @missed_with_reasons.select { |name, _| predicate.call(name) },
    @hit.select(&predicate)
  )
end

#update_to(path) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/cocoapods-binary-ht/cache/validation_result.rb', line 37

def update_to(path)
  FileUtils.mkdir_p(File.dirname(path))
  json_file = PodPrebuild::JSONFile.new(path)
  json_file["cache_missed"] = missed.to_a
  json_file["cache_hit"] = hit.to_a
  json_file.save!
end