Class: BranchIOCLI::Configuration::XcodeSettings
- Inherits:
-
Object
- Object
- BranchIOCLI::Configuration::XcodeSettings
- Defined in:
- lib/branch_io_cli/configuration/xcode_settings.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
Class Method Summary collapse
- .[](configuration) ⇒ Object
- .all_valid? ⇒ Boolean
- .reset ⇒ Object
- .settings(configuration = Configuration.current.configurations.first) ⇒ Object
Instance Method Summary collapse
- #[](key) ⇒ Object
- #config ⇒ Object
- #env ⇒ Object
-
#initialize(configuration) ⇒ XcodeSettings
constructor
A new instance of XcodeSettings.
- #load_settings_from_xcode ⇒ Object
- #log_xcodebuild_showbuildsettings(report = STDOUT) ⇒ Object
- #valid? ⇒ Boolean
- #xcodebuild_cmd ⇒ Object
Constructor Details
#initialize(configuration) ⇒ XcodeSettings
Returns a new instance of XcodeSettings.
31 32 33 34 35 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 31 def initialize(configuration) @configuration = configuration load_settings_from_xcode end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
29 30 31 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 29 def configuration @configuration end |
Class Method Details
.[](configuration) ⇒ Object
13 14 15 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 13 def [](configuration) settings configuration end |
.all_valid? ⇒ Boolean
9 10 11 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 9 def all_valid? Configuration.current.configurations.map { |c| settings(c) }.all?(&:valid?) end |
.reset ⇒ Object
24 25 26 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 24 def reset @settings = {} end |
.settings(configuration = Configuration.current.configurations.first) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 17 def settings(configuration = Configuration.current.configurations.first) return @settings[configuration] if @settings && @settings[configuration] @settings ||= {} @settings[configuration] = self.new configuration end |
Instance Method Details
#[](key) ⇒ Object
49 50 51 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 49 def [](key) @xcode_settings[key] end |
#config ⇒ Object
41 42 43 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 41 def config Configuration.current end |
#env ⇒ Object
45 46 47 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 45 def env Environment end |
#load_settings_from_xcode ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 68 def load_settings_from_xcode @xcodebuild_showbuildsettings_output = "" @xcode_settings = {} Open3.popen2e(xcodebuild_cmd) do |stdin, output, thread| while (line = output.gets) @xcodebuild_showbuildsettings_output += env.obfuscate_user(line) line.strip! next unless (matches = /^(.+)\s+=\s+(.+)$/.match line) @xcode_settings[matches[1]] = matches[2] end @xcodebuild_showbuildsettings_status = thread.value end end |
#log_xcodebuild_showbuildsettings(report = STDOUT) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 82 def log_xcodebuild_showbuildsettings(report = STDOUT) if report == STDOUT say "<%= color('$ #{xcodebuild_cmd}', [MAGENTA, BOLD]) %>\n\n" else report.write "$ #{env.obfuscate_user(xcodebuild_cmd)}\n\n" end report.write @xcodebuild_showbuildsettings_output if valid? report.write "Success.\n\n" else report.write "#{@xcodebuild_showbuildsettings_status}.\n\n" end end |
#valid? ⇒ Boolean
37 38 39 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 37 def valid? @xcodebuild_showbuildsettings_status.success? end |
#xcodebuild_cmd ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 53 def xcodebuild_cmd [ "xcodebuild", "-showBuildSettings", "-project", config.xcodeproj_path, "-target", config.target.name, "-sdk", config.sdk, "-configuration", configuration ].shelljoin end |