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
-
#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.
30 31 32 33 34 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 30 def initialize(configuration) @configuration = configuration load_settings_from_xcode end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
28 29 30 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 28 def configuration @configuration end |
Class Method Details
.[](configuration) ⇒ Object
12 13 14 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 12 def [](configuration) settings configuration end |
.all_valid? ⇒ Boolean
8 9 10 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 8 def all_valid? Configuration.current.configurations.map { |c| settings(c) }.all?(&:valid?) end |
.reset ⇒ Object
23 24 25 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 23 def reset @settings = {} end |
.settings(configuration = Configuration.current.configurations.first) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 16 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
44 45 46 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 44 def [](key) @xcode_settings[key] end |
#config ⇒ Object
40 41 42 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 40 def config Configuration.current end |
#load_settings_from_xcode ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 63 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 += 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
77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 77 def log_xcodebuild_showbuildsettings(report = STDOUT) if report == STDOUT say "<%= color('$ #{xcodebuild_cmd}', [MAGENTA, BOLD]) %>\n\n" else report.write "$ #{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
36 37 38 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 36 def valid? @xcodebuild_showbuildsettings_status.success? end |
#xcodebuild_cmd ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/branch_io_cli/configuration/xcode_settings.rb', line 48 def xcodebuild_cmd [ "xcodebuild", "-showBuildSettings", "-project", config.xcodeproj_path, "-target", config.target.name, "-sdk", config.sdk, "-configuration", configuration ].shelljoin end |