Class: EarlGreyYaml
- Inherits:
-
Object
- Object
- EarlGreyYaml
- Defined in:
- lib/earlgrey/extensions/earlgrey_yaml.rb
Constant Summary collapse
- ADD_SWIFT =
'add_swift'.freeze
- ADD_BUILD_PHASE =
'add_build_phase'.freeze
- ADD_FRAMEWORK =
'add_framework'.freeze
Instance Method Summary collapse
-
#initialize(analyzer, podfile) ⇒ EarlGreyYaml
constructor
A new instance of EarlGreyYaml.
- #lookup_target(native_target) ⇒ Object
- #validate_keys ⇒ Object
- #validate_targets ⇒ Object
Constructor Details
#initialize(analyzer, podfile) ⇒ EarlGreyYaml
Returns a new instance of EarlGreyYaml.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/earlgrey/extensions/earlgrey_yaml.rb', line 6 def initialize(analyzer, podfile) @analyzer = analyzer earlgrey_yml_path = File.join(File.dirname(podfile.defined_in_file.to_s), 'earlgrey_gem.yml') @earlgrey_yml = {} @earlgrey_yml = YAML.safe_load(File.read(earlgrey_yml_path)) if File.exist?(earlgrey_yml_path) validate_targets validate_keys end |
Instance Method Details
#lookup_target(native_target) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/earlgrey/extensions/earlgrey_yaml.rb', line 41 def lookup_target(native_target) target = begin @earlgrey_yml.fetch(native_target.name, {}) # rubocop:disable Style/RescueStandardError rescue abort("Invalid earlgrey_gem.yaml. Unable to fetch: #{native_target.name}") end # rubocop:enable Style/RescueStandardError tmp = {} target.map { |obj| obj.map { |k, v| tmp[k] = v } } { ADD_SWIFT => tmp.fetch(ADD_SWIFT, true), ADD_BUILD_PHASE => tmp.fetch(ADD_BUILD_PHASE, true), ADD_FRAMEWORK => tmp.fetch(ADD_FRAMEWORK, true) } end |
#validate_keys ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/earlgrey/extensions/earlgrey_yaml.rb', line 30 def validate_keys unknown_keys = [] existing_keys = @earlgrey_yml.values.flatten.map(&:keys).flatten existing_keys.each do |key| unknown_keys << key unless [ADD_SWIFT, ADD_BUILD_PHASE, ADD_FRAMEWORK].include?(key) end unknown_keys = unknown_keys.join(', ') abort "ERROR: earlgrey_gem.yml contains unknown keys: #{unknown_keys}".red unless unknown_keys.empty? end |
#validate_targets ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/earlgrey/extensions/earlgrey_yaml.rb', line 17 def validate_targets config_targets = @earlgrey_yml.keys existing_targets = @analyzer.targets.map(&:user_targets).flatten.map(&:name) missing_targets = (config_targets - existing_targets).join(', ') unless missing_targets.empty? error = "ERROR: earlgrey_gem.yml references missing targets: #{missing_targets}\n" error += "Valid targets: #{existing_targets}" abort error end end |