Class: PodPrebuild::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/command/config.rb

Overview

rubocop:disable Metrics/ClassLength

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Config

Returns a new instance of Config.



11
12
13
14
15
16
# File 'lib/command/config.rb', line 11

def initialize(path)
  @deprecated_config = File.exist?(path) ? PodPrebuild::JSONFile.new(path).data : {}
  @dsl_config = {}
  @cli_config = {}
  @detected_config = {}
end

Instance Attribute Details

#cli_configObject

Returns the value of attribute cli_config.



9
10
11
# File 'lib/command/config.rb', line 9

def cli_config
  @cli_config
end

#dsl_configObject

Returns the value of attribute dsl_config.



9
10
11
# File 'lib/command/config.rb', line 9

def dsl_config
  @dsl_config
end

Class Method Details

.instanceObject



18
19
20
# File 'lib/command/config.rb', line 18

def self.instance
  @instance ||= new("PodBinaryCacheConfig.json")
end

Instance Method Details

#bitcode_enabled?Boolean

Returns:



94
95
96
# File 'lib/command/config.rb', line 94

def bitcode_enabled?
  @dsl_config[:bitcode_enabled]
end

#build_argsObject



110
111
112
# File 'lib/command/config.rb', line 110

def build_args
  @dsl_config[:build_args]
end

#cache_pathObject



32
33
34
# File 'lib/command/config.rb', line 32

def cache_path
  @cache_path ||= File.expand_path(cache_repo_config["local"])
end

#cache_repoObject



28
29
30
# File 'lib/command/config.rb', line 28

def cache_repo
  @cache_repo ||= cache_repo_config["remote"]
end

#dev_pods_enabled?Boolean

Returns:



90
91
92
# File 'lib/command/config.rb', line 90

def dev_pods_enabled?
  @dsl_config[:dev_pods_enabled]
end

#device_build_enabled?Boolean

Returns:



98
99
100
# File 'lib/command/config.rb', line 98

def device_build_enabled?
  @dsl_config[:device_build_enabled]
end

#disable_dsym?Boolean

Returns:



102
103
104
# File 'lib/command/config.rb', line 102

def disable_dsym?
  @dsl_config[:disable_dsym]
end

#dont_remove_source_code?Boolean

Returns:



106
107
108
# File 'lib/command/config.rb', line 106

def dont_remove_source_code?
  @dsl_config[:dont_remove_source_code]
end

#excluded_podsObject



86
87
88
# File 'lib/command/config.rb', line 86

def excluded_pods
  ((@dsl_config[:excluded_pods] || Set.new) + (@detected_config[:excluded_pods] || Set.new)).to_set
end

#generated_frameworks_dir(in_cache: false) ⇒ Object



52
53
54
# File 'lib/command/config.rb', line 52

def generated_frameworks_dir(in_cache: false)
  root_dir(in_cache) + "/GeneratedFrameworks"
end

#manifest_path(in_cache: false) ⇒ Object



44
45
46
# File 'lib/command/config.rb', line 44

def manifest_path(in_cache: false)
  root_dir(in_cache) + "/Manifest.lock"
end

#prebuild_all_pods?Boolean

Returns:



82
83
84
# File 'lib/command/config.rb', line 82

def prebuild_all_pods?
  @cli_config[:prebuild_all_pods] || @dsl_config[:prebuild_all_pods]
end

#prebuild_code_genObject



122
123
124
# File 'lib/command/config.rb', line 122

def prebuild_code_gen
  @dsl_config[:prebuild_code_gen]
end

#prebuild_configObject



74
75
76
# File 'lib/command/config.rb', line 74

def prebuild_config
  @cli_config[:prebuild_config] || @dsl_config[:prebuild_config] || "Debug"
end

#prebuild_delta_pathObject



40
41
42
# File 'lib/command/config.rb', line 40

def prebuild_delta_path
  @dsl_config[:prebuild_delta_path] || @deprecated_config["prebuild_delta_path"] || "_Prebuild_delta/changes.json"
end

#prebuild_job?Boolean

Returns:



78
79
80
# File 'lib/command/config.rb', line 78

def prebuild_job?
  @cli_config[:prebuild_job] || @dsl_config[:prebuild_job]
end

#prebuild_sandbox_pathObject



36
37
38
# File 'lib/command/config.rb', line 36

def prebuild_sandbox_path
  @dsl_config[:prebuild_sandbox_path] || @deprecated_config["prebuild_path"] || "_Prebuild"
end

#prebuilt_path(path: nil) ⇒ Object



56
57
58
# File 'lib/command/config.rb', line 56

def prebuilt_path(path: nil)
  path.nil? ? "_Prebuilt" : "_Prebuilt/#{path}"
end

#prebuilt_pod_namesObject



142
143
144
# File 'lib/command/config.rb', line 142

def prebuilt_pod_names
  @detected_config[:prebuilt_pod_names] || Set.new
end

#reset!Object



22
23
24
25
26
# File 'lib/command/config.rb', line 22

def reset!
  @deprecated_config = {}
  @dsl_config = {}
  @cli_config = {}
end

#root_dir(in_cache) ⇒ Object



48
49
50
# File 'lib/command/config.rb', line 48

def root_dir(in_cache)
  in_cache ? cache_path : prebuild_sandbox_path
end

#save_cache_validation_toObject



114
115
116
# File 'lib/command/config.rb', line 114

def save_cache_validation_to
  @dsl_config[:save_cache_validation_to]
end

#strict_diagnosis?Boolean

Returns:



126
127
128
# File 'lib/command/config.rb', line 126

def strict_diagnosis?
  @dsl_config[:strict_diagnosis]
end

#targets_to_prebuild_from_cliObject



130
131
132
# File 'lib/command/config.rb', line 130

def targets_to_prebuild_from_cli
  @cli_config[:prebuild_targets] || []
end

#tracked_prebuilt_pod_namesObject



146
147
148
# File 'lib/command/config.rb', line 146

def tracked_prebuilt_pod_names
  prebuilt_pod_names - excluded_pods
end

#update_detected_excluded_pods!(value) ⇒ Object



138
139
140
# File 'lib/command/config.rb', line 138

def update_detected_excluded_pods!(value)
  @detected_config[:excluded_pods] = value
end

#update_detected_prebuilt_pod_names!(value) ⇒ Object



134
135
136
# File 'lib/command/config.rb', line 134

def update_detected_prebuilt_pod_names!(value)
  @detected_config[:prebuilt_pod_names] = value
end

#validate_dsl_configObject



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/command/config.rb', line 60

def validate_dsl_config
  inapplicable_options = @dsl_config.keys - applicable_dsl_config
  return if inapplicable_options.empty?

  message = "    [WARNING] The following options (in `config_cocoapods_binary_cache`) are not correct: \#{inapplicable_options}.\n    Available options: \#{applicable_dsl_config}.\n    Check out the following doc for more details\n      https://github.com/grab/cocoapods-binary-cache/blob/master/docs/configure_cocoapods_binary_cache.md\n  HEREDOC\n\n  Pod::UI.puts message.yellow\nend\n"

#validate_prebuilt_settingsObject



118
119
120
# File 'lib/command/config.rb', line 118

def validate_prebuilt_settings
  @dsl_config[:validate_prebuilt_settings]
end