fastlane/lib/fastlane/swift_fastlane_function.rb in fastlane-2.129.0.beta.20190811200106 vs fastlane/lib/fastlane/swift_fastlane_function.rb in fastlane-2.129.0.beta.20190813200016

- old
+ new

@@ -5,19 +5,21 @@ attr_accessor :param_names attr_accessor :param_descriptions attr_accessor :param_default_values attr_accessor :param_optionality_values attr_accessor :param_type_overrides + attr_accessor :param_is_strings attr_accessor :reserved_words attr_accessor :default_values_to_ignore - def initialize(action_name: nil, keys: nil, key_descriptions: nil, key_default_values: nil, key_optionality_values: nil, key_type_overrides: nil, return_type: nil) + def initialize(action_name: nil, keys: nil, key_descriptions: nil, key_default_values: nil, key_optionality_values: nil, key_type_overrides: nil, key_is_strings: nil, return_type: nil) @function_name = action_name @param_names = keys @param_descriptions = key_descriptions @param_default_values = key_default_values @param_optionality_values = key_optionality_values + @param_is_strings = key_is_strings @return_type = return_type @param_type_overrides = key_type_overrides # rubocop:disable LineLength # class instance? @@ -89,16 +91,18 @@ return "{_ in }" if param_type == "((String) -> Void)" return default_value end - def get_type(param: nil, default_value: nil, optional: nil, param_type_override: nil) + def get_type(param: nil, default_value: nil, optional: nil, param_type_override: nil, is_string: true) unless param_type_override.nil? type = determine_type_from_override(type_override: param_type_override) end - type ||= "String" + # defaulting type to Any if is_string is false so users are allowed to input all allowed types + type ||= is_string ? "String" : "Any" + optional_specifier = "" # if we are optional and don't have a default value, we'll need to use ? optional_specifier = "?" if (optional && default_value.nil?) && type != "((String) -> Void)" # If we have a default value of true or false, we can infer it is a Bool @@ -119,12 +123,12 @@ def parameters unless @param_names return "" end - param_names_and_types = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides).map do |param, default_value, optional, param_type_override| - type = get_type(param: param, default_value: default_value, optional: optional, param_type_override: param_type_override) + param_names_and_types = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides, param_is_strings).map do |param, default_value, optional, param_type_override, is_string| + type = get_type(param: param, default_value: default_value, optional: optional, param_type_override: param_type_override, is_string: is_string) unless default_value.nil? if type == "[String : Any]" # we can't handle default values for Hashes, yet default_value = "[:]" @@ -302,11 +306,11 @@ def parameters unless @param_names return "" end - param_names_and_types = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides).map do |param, default_value, optional, param_type_override| - type = get_type(param: param, default_value: default_value, optional: optional, param_type_override: param_type_override) + param_names_and_types = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides).map do |param, default_value, optional, param_type_override, is_string| + type = get_type(param: param, default_value: default_value, optional: optional, param_type_override: param_type_override, is_string: is_string) param = camel_case_lower(string: param) param = sanitize_reserved_word(word: param) static_var_for_parameter_name = param