fastlane_core 0.34.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b43d0fb739ccee6fcedec6856d38d00f10bcbfe
|
4
|
+
data.tar.gz: 664c10324aeb625a85039f1d11c9b8db4c66fdfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8268978937c954fede5259007736560abbba4d52e05ae04947acf8c4eb9d7eedbb803933b0b2d2b330406509293158811433ff130c48eeadd7f6c672145ba37
|
7
|
+
data.tar.gz: 7b19622020da636ff3940da9ffc37ec0cf2393596addf246f62f94ff721e6f645e056e04b438f60322e1a1d316c3771268a825eddb486d9f1a3013950af1866e
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module FastlaneCore
|
2
2
|
class ConfigItem
|
3
|
-
attr_accessor :key, :env_name, :description, :short_option, :default_value, :verify_block, :optional
|
3
|
+
attr_accessor :key, :env_name, :description, :short_option, :default_value, :verify_block, :optional, :conflicting_options, :conflict_block
|
4
4
|
|
5
5
|
# Creates a new option
|
6
6
|
# @param key (Symbol) the key which is used as command paramters or key in the fastlane tools
|
@@ -14,7 +14,9 @@ module FastlaneCore
|
|
14
14
|
# @param is_string *DEPRECATED: Use `type` instead* (Boolean) is that parameter a string? Defaults to true. If it's true, the type string will be verified.
|
15
15
|
# @param type (Class) the data type of this config item. Takes precedence over `is_string`
|
16
16
|
# @param optional (Boolean) is false by default. If set to true, also string values will not be asked to the user
|
17
|
-
|
17
|
+
# @param conflicting_options ([]) array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
|
18
|
+
# @param conflict_block an optional block which is called when options conflict happens
|
19
|
+
def initialize(key: nil, env_name: nil, description: nil, short_option: nil, default_value: nil, verify_block: nil, is_string: true, type: nil, optional: false, conflicting_options: nil, conflict_block: nil)
|
18
20
|
raise "key must be a symbol" unless key.kind_of? Symbol
|
19
21
|
raise "env_name must be a String" unless (env_name || '').kind_of? String
|
20
22
|
|
@@ -29,6 +31,12 @@ module FastlaneCore
|
|
29
31
|
raise "Type '#{type}' for key '#{key}' requires a short option"
|
30
32
|
end
|
31
33
|
|
34
|
+
if conflicting_options
|
35
|
+
conflicting_options.each do |conflicting_option_key|
|
36
|
+
raise "Conflicting option key must be a symbol" unless conflicting_option_key.kind_of? Symbol
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
32
40
|
@key = key
|
33
41
|
@env_name = env_name
|
34
42
|
@description = description
|
@@ -38,6 +46,8 @@ module FastlaneCore
|
|
38
46
|
@is_string = is_string
|
39
47
|
@data_type = type
|
40
48
|
@optional = optional
|
49
|
+
@conflicting_options = conflicting_options
|
50
|
+
@conflict_block = conflict_block
|
41
51
|
end
|
42
52
|
|
43
53
|
# This will raise an exception if the value is not valid
|
@@ -38,6 +38,7 @@ module FastlaneCore
|
|
38
38
|
verify_input_types
|
39
39
|
verify_value_exists
|
40
40
|
verify_no_duplicates
|
41
|
+
verify_conflicts
|
41
42
|
verify_default_value_matches_verify_block
|
42
43
|
end
|
43
44
|
|
@@ -76,6 +77,36 @@ module FastlaneCore
|
|
76
77
|
end
|
77
78
|
end
|
78
79
|
|
80
|
+
def verify_conflicts
|
81
|
+
option_keys = @values.keys
|
82
|
+
|
83
|
+
option_keys.each do |current|
|
84
|
+
index = @available_options.find_index { |item| item.key == current }
|
85
|
+
current = @available_options[index]
|
86
|
+
|
87
|
+
next if current.conflicting_options.nil?
|
88
|
+
|
89
|
+
conflicts = current.conflicting_options & option_keys
|
90
|
+
next if conflicts.nil?
|
91
|
+
|
92
|
+
conflicts.each do |conflicting_option_key|
|
93
|
+
index = @available_options.find_index { |item| item.key == conflicting_option_key }
|
94
|
+
conflicting_option = @available_options[index]
|
95
|
+
|
96
|
+
if current.conflict_block
|
97
|
+
begin
|
98
|
+
current.conflict_block.call(conflicting_option)
|
99
|
+
rescue => ex
|
100
|
+
Helper.log.fatal "Error resolving conflict between options: '#{current.key}' and '#{conflicting_option.key}'".red
|
101
|
+
raise ex
|
102
|
+
end
|
103
|
+
else
|
104
|
+
raise "Unresolved conflict between options: '#{current.key}' and '#{conflicting_option.key}'".red
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
79
110
|
# Verifies the default value is also valid
|
80
111
|
def verify_default_value_matches_verify_block
|
81
112
|
@available_options.each do |item|
|
@@ -112,7 +143,9 @@ module FastlaneCore
|
|
112
143
|
return if paths.count == 0
|
113
144
|
|
114
145
|
path = paths.first
|
115
|
-
ConfigurationFile.new(self, path, block_for_missing)
|
146
|
+
configuration_file = ConfigurationFile.new(self, path, block_for_missing)
|
147
|
+
verify_conflicts # important, since user can set conflicting options in configuration file
|
148
|
+
configuration_file
|
116
149
|
end
|
117
150
|
|
118
151
|
#####################################################
|
@@ -198,9 +198,9 @@ module FastlaneCore
|
|
198
198
|
end
|
199
199
|
|
200
200
|
# Returns the build settings and sets the default scheme to the options hash
|
201
|
-
def default_build_settings(key: nil, optional: true
|
201
|
+
def default_build_settings(key: nil, optional: true)
|
202
202
|
options[:scheme] = schemes.first if is_workspace
|
203
|
-
build_settings(key: key, optional: optional
|
203
|
+
build_settings(key: key, optional: optional)
|
204
204
|
end
|
205
205
|
|
206
206
|
def raw_info(silent: false)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.35.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -383,7 +383,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
383
383
|
version: '0'
|
384
384
|
requirements: []
|
385
385
|
rubyforge_project:
|
386
|
-
rubygems_version: 2.4.
|
386
|
+
rubygems_version: 2.4.0
|
387
387
|
signing_key:
|
388
388
|
specification_version: 4
|
389
389
|
summary: Contains all shared code/dependencies of the fastlane.tools
|