Class: BranchIOCLI::Configuration::ValidateConfiguration

Inherits:
Configuration
  • Object
show all
Defined in:
lib/branch_io_cli/configuration/validate_configuration.rb

Instance Attribute Summary

Attributes inherited from Configuration

#cartfile_path, #options, #pod_repo_update, #podfile, #podfile_path, #sdk, #sdk_integration_mode, #target, #workspace, #workspace_path, #xcodeproj, #xcodeproj_path

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Configuration

absolute_path, #absolute_path, #app_delegate_objc_path, #app_delegate_swift_path, #branch_imports, #branch_imports_from_file, #bridging_header_path, #bridging_header_required?, #confirm_with_user, defaults, #helper, #messages_view_controller_path, #method_missing, #modules_enabled?, open_podfile, #open_podfile, #open_xcodeproj, open_xcodeproj, #pod_install_required?, #print_identification, #prompt_for_option, #relative_path, relative_path, #root, root, #swift_version, #target_name, #uses_frameworks?, #validate_buildfile_at_path, #validate_buildfile_path, #validate_target, #validate_xcodeproj_path, wrapper

Constructor Details

#initialize(options) ⇒ ValidateConfiguration

Returns a new instance of ValidateConfiguration.



45
46
47
48
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 45

def initialize(options)
  super
  @domains = options.domains
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class BranchIOCLI::Configuration::Configuration

Class Method Details

.available_optionsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 13

def available_options
  [
    Option.new(
      name: :domains,
      description: "Comma-separated list of domains to validate (Branch domains or non-Branch domains)",
      type: Array,
      example: "example.com,www.example.com",
      aliases: "-D",
      default_value: []
    ),
    Option.new(
      name: :xcodeproj,
      description: "Path to an Xcode project to update",
      type: String,
      example: "MyProject.xcodeproj"
    ),
    Option.new(
      name: :target,
      description: "Name of a target to validate in the Xcode project",
      type: String,
      example: "MyAppTarget"
    ),
    Option.new(
      name: :configurations,
      description: "Comma-separated list of configurations to validate (default: all)",
      type: Array,
      example: "Debug,Release"
    )
  ]
end

.return_valueObject



9
10
11
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 9

def return_value
  "If validation passes, this command returns 0. If validation fails, it returns 1."
end

.summaryObject



5
6
7
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 5

def summary
  "Validates all Universal Link domains configured in a project"
end

Instance Method Details

#logObject



55
56
57
58
59
60
61
62
63
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 55

def log
  super
  say <<EOF
<%= color('Xcode project:', BOLD) %> #{xcodeproj_path}
<%= color('Target:', BOLD) %> #{target.name}
<%= color('Domains:', BOLD) %> #{domains || '(none)'}
<%= color('Configurations:', BOLD) %> #{(configurations || xcodeproj.build_configurations.map(&:name)).join(',')}
EOF
end

#validate_optionsObject



50
51
52
53
# File 'lib/branch_io_cli/configuration/validate_configuration.rb', line 50

def validate_options
  validate_xcodeproj_path
  validate_target
end