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:

  • (Boolean)


100
101
102
# File 'lib/command/config.rb', line 100

def bitcode_enabled?
  @dsl_config[:bitcode_enabled]
end

#build_argsObject



124
125
126
# File 'lib/command/config.rb', line 124

def build_args
  @dsl_config[:build_args]
end

#cache_pathObject



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

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:

  • (Boolean)


96
97
98
# File 'lib/command/config.rb', line 96

def dev_pods_enabled?
  @dsl_config[:dev_pods_enabled]
end

#device_build_enabled?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/command/config.rb', line 104

def device_build_enabled?
  @dsl_config[:device_build_enabled]
end

#disable_dsym?Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/command/config.rb', line 112

def disable_dsym?
  @dsl_config[:disable_dsym]
end

#dont_remove_source_code?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/command/config.rb', line 116

def dont_remove_source_code?
  @dsl_config[:dont_remove_source_code]
end

#excluded_podsObject



92
93
94
# File 'lib/command/config.rb', line 92

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



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

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

#local_cache?Boolean

Returns:

  • (Boolean)


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

def local_cache?
  cache_repo.nil?
end

#manifest_path(in_cache: false) ⇒ Object



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

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

#prebuild_all_pods?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/command/config.rb', line 88

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

#prebuild_code_genObject



136
137
138
# File 'lib/command/config.rb', line 136

def prebuild_code_gen
  @dsl_config[:prebuild_code_gen]
end

#prebuild_configObject



80
81
82
# File 'lib/command/config.rb', line 80

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

#prebuild_delta_pathObject



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

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

#prebuild_job?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/command/config.rb', line 84

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

#prebuild_sandbox_pathObject



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

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

#prebuilt_path(path: nil) ⇒ Object



60
61
62
63
64
# File 'lib/command/config.rb', line 60

def prebuilt_path(path: nil)
  p = Pathname.new(path.nil? ? "_Prebuilt" : "_Prebuilt/#{path}")
  p = p.sub_ext(".xcframework") if xcframework? && p.extname == ".framework"
  p.to_s
end

#prebuilt_pod_namesObject



160
161
162
# File 'lib/command/config.rb', line 160

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



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

def root_dir(in_cache)
  in_cache ? cache_path : prebuild_sandbox_path
end

#save_cache_validation_toObject



128
129
130
# File 'lib/command/config.rb', line 128

def save_cache_validation_to
  @dsl_config[:save_cache_validation_to]
end

#silent_build?Boolean

Returns:

  • (Boolean)


144
145
146
# File 'lib/command/config.rb', line 144

def silent_build?
  @dsl_config[:silent_build]
end

#strict_diagnosis?Boolean

Returns:

  • (Boolean)


140
141
142
# File 'lib/command/config.rb', line 140

def strict_diagnosis?
  @dsl_config[:strict_diagnosis]
end

#targets_to_prebuild_from_cliObject



148
149
150
# File 'lib/command/config.rb', line 148

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

#tracked_prebuilt_pod_namesObject



164
165
166
# File 'lib/command/config.rb', line 164

def tracked_prebuilt_pod_names
  prebuilt_pod_names - excluded_pods
end

#update_detected_excluded_pods!(value) ⇒ Object



156
157
158
# File 'lib/command/config.rb', line 156

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

#update_detected_prebuilt_pod_names!(value) ⇒ Object



152
153
154
# File 'lib/command/config.rb', line 152

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

#validate_dsl_configObject



66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/command/config.rb', line 66

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

  message = <<~HEREDOC
    [WARNING] The following options (in `config_cocoapods_binary_cache`) are not correct: #{inapplicable_options}.
    Available options: #{applicable_dsl_config}.
    Check out the following doc for more details
      https://github.com/pandaleecn/cocoapods-binary-ht/blob/master/docs/configure_cocoapods_binary_cache.md
  HEREDOC

  Pod::UI.puts message.yellow
end

#validate_prebuilt_settingsObject



132
133
134
# File 'lib/command/config.rb', line 132

def validate_prebuilt_settings
  @dsl_config[:validate_prebuilt_settings]
end

#xcframework?Boolean

Returns:

  • (Boolean)


108
109
110
# File 'lib/command/config.rb', line 108

def xcframework?
  @dsl_config[:xcframework]
end

#xcodebuild_log_pathObject



120
121
122
# File 'lib/command/config.rb', line 120

def xcodebuild_log_path
  @dsl_config[:xcodebuild_log_path]
end