Class: AnnFlavorCocoapods::SpecLoader
- Inherits:
-
Object
- Object
- AnnFlavorCocoapods::SpecLoader
- Defined in:
- lib/ann_flavor_cocoapods/spec_loader.rb
Constant Summary collapse
- SPEC_FILE =
'annspec.yaml'
Class Method Summary collapse
- .enabled?(spec) ⇒ Boolean
- .find_spec_file(start_dir) ⇒ Object
- .ios_default(spec) ⇒ Object
- .ios_flavors(spec) ⇒ Object
- .load(project_root = nil) ⇒ Object
Class Method Details
.enabled?(spec) ⇒ Boolean
25 26 27 |
# File 'lib/ann_flavor_cocoapods/spec_loader.rb', line 25 def self.enabled?(spec) spec.fetch('enabled', true) != false end |
.find_spec_file(start_dir) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ann_flavor_cocoapods/spec_loader.rb', line 13 def self.find_spec_file(start_dir) dir = File.(start_dir) loop do candidate = File.join(dir, SPEC_FILE) return candidate if File.exist?(candidate) parent = File.dirname(dir) break if parent == dir dir = parent end nil end |
.ios_default(spec) ⇒ Object
34 35 36 37 |
# File 'lib/ann_flavor_cocoapods/spec_loader.rb', line 34 def self.ios_default(spec) return {} unless enabled?(spec) spec.dig('app', 'ios', 'default') || {} end |
.ios_flavors(spec) ⇒ Object
29 30 31 32 |
# File 'lib/ann_flavor_cocoapods/spec_loader.rb', line 29 def self.ios_flavors(spec) return {} unless enabled?(spec) spec.dig('app', 'ios', 'flavor') || {} end |
.load(project_root = nil) ⇒ Object
7 8 9 10 11 |
# File 'lib/ann_flavor_cocoapods/spec_loader.rb', line 7 def self.load(project_root = nil) path = find_spec_file(project_root || Dir.pwd) raise "annspec.yaml not found (searched upward from #{project_root || Dir.pwd})" unless path YAML.safe_load(File.read(path), permitted_classes: [Symbol]) end |