Class: FastlaneCore::ConfigItem

Inherits:
Object
  • Object
show all
Defined in:
lib/fastlane_core/configuration/config_item.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key: nil, env_name: nil, description: nil, short_option: nil, default_value: nil, verify_block: nil, is_string: true, optional: false) ⇒ ConfigItem

Creates a new option



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/fastlane_core/configuration/config_item.rb', line 16

def initialize(key: nil, env_name: nil, description: nil, short_option: nil, default_value: nil, verify_block: nil, is_string: true, optional: false)
  raise "key must be a symbol" unless key.kind_of?Symbol
  raise "env_name must be a String" unless env_name.kind_of?String
  if short_option
    raise "short_option must be a String of length 1" unless (short_option.kind_of?String and short_option.gsub('-', '').length == 1)
  end
  if description
    raise "Do not let descriptions end with a '.', since it's used for user inputs as well".red if (description[-1] == '.')
  end

  @key = key
  @env_name = env_name
  @description = description
  @short_option = short_option
  @default_value = default_value
  @verify_block = verify_block
  @is_string = is_string
  @optional = optional
end

Instance Attribute Details

#default_valueObject

Returns the value of attribute default_value.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def default_value
  @default_value
end

#descriptionObject

Returns the value of attribute description.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def description
  @description
end

#env_nameObject

Returns the value of attribute env_name.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def env_name
  @env_name
end

#is_stringObject

Returns the value of attribute is_string.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def is_string
  @is_string
end

#keyObject

Returns the value of attribute key.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def key
  @key
end

#optionalObject

Returns the value of attribute optional.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def optional
  @optional
end

#short_optionObject

Returns the value of attribute short_option.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def short_option
  @short_option
end

#verify_blockObject

Returns the value of attribute verify_block.



3
4
5
# File 'lib/fastlane_core/configuration/config_item.rb', line 3

def verify_block
  @verify_block
end

Instance Method Details

#is_valid?(value) ⇒ Boolean

Make sure, the value is valid (based on the verify block) Returns false if that’s not the case



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/fastlane_core/configuration/config_item.rb', line 45

def is_valid?(value)
  # we also allow nil values, which do not have to be verified. 
  if value
    if @is_string
      raise "Please pass a path as String".red unless value.kind_of?String
    end
    
    if @verify_block
      begin
        @verify_block.call(value)
      rescue Exception => ex
        Helper.log.fatal "Error setting value '#{value}' for option '#{@key}'".red
        raise ex
      end
    end
  end

  true
end

#to_sObject



65
66
67
# File 'lib/fastlane_core/configuration/config_item.rb', line 65

def to_s
  [@key, @description].join(": ")
end

#verify!(value) ⇒ Object

This will raise an exception if the value is not valid



38
39
40
41
# File 'lib/fastlane_core/configuration/config_item.rb', line 38

def verify!(value)
  raise "Invalid value '#{value}' for option '#{self}'".red unless is_valid?value
  true
end