Class: CocoapodsPodfileLocal::OverrideManager

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods_podfile_local/override_manager.rb

Constant Summary collapse

SOURCE_KEYS =
%i[git path podspec].freeze
GIT_EXTRAS =
%i[branch tag commit].freeze
EXCLUSIVE_RULES =
{
  git:     %i[path podspec],
  path:    %i[git branch tag commit podspec],
  podspec: %i[git branch tag commit path],
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOverrideManager

Returns a new instance of OverrideManager.



20
21
22
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 20

def initialize
  @overrides = {}
end

Class Method Details

.instanceObject



12
13
14
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 12

def self.instance
  @instance ||= new
end

.reset!Object



16
17
18
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 16

def self.reset!
  @instance = nil
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 32

def empty?
  @overrides.empty?
end

#merge(original_options, override_options) ⇒ Object

Merge override options into the original options, with exclusive-source cleanup.



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 37

def merge(original_options, override_options)
  merged = original_options.dup

  keys_to_remove = []
  EXCLUSIVE_RULES.each do |source_key, conflicting_keys|
    if override_options.key?(source_key)
      keys_to_remove.concat(conflicting_keys)
    end
  end

  keys_to_remove.uniq.each { |k| merged.delete(k) }
  merged.merge(override_options)
end

#overridesObject



28
29
30
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 28

def overrides
  @overrides.dup
end

#register(pod_name, options) ⇒ Object



24
25
26
# File 'lib/cocoapods_podfile_local/override_manager.rb', line 24

def register(pod_name, options)
  @overrides[pod_name] = options
end