Sha256: f92e225428b56c32b7a35f1b74523069ab40a9973db203675d23cf1d142edb08

Contents?: true

Size: 1.2 KB

Versions: 17

Compression:

Stored size: 1.2 KB

Contents

require 'zendesk_apps_tools/common'

module ZendeskAppsTools
  class Settings

    def get_settings_from(user_input, parameters)
      return {} if parameters.nil?

      parameters.inject({}) do |settings, param|
        if param[:default]
          input = user_input.get_value_from_stdin("Enter a value for parameter '#{param[:name]}' or press 'Return' to use the default value '#{param[:default]}':\n", :allow_empty => true)
          input = param[:default] if input.empty?
        elsif param[:required]
          input = user_input.get_value_from_stdin("Enter a value for required parameter '#{param[:name]}':\n")
        else
          input = user_input.get_value_from_stdin("Enter a value for optional parameter '#{param[:name]}' or press 'Return' to skip:\n", :allow_empty => true)
        end

        if param[:type] == 'checkbox'
          input = convert_to_boolean_for_checkbox(input)
        end

        settings[param[:name]] = input if input != ''
        settings
      end
    end

    private

    def convert_to_boolean_for_checkbox(input)
      if ![TrueClass, FalseClass].include?(input.class)
        return (input =~ /^(true|t|yes|y|1)$/i) ? true : false
      end
      input
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
zendesk_apps_tools-1.19.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.18.2 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.18.1 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.18.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.17.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.15.1 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.15.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.14.2 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.14.1 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.14.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.13.2 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.13.1 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.13.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.12.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.11.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.10.0 lib/zendesk_apps_tools/settings.rb
zendesk_apps_tools-1.9.0 lib/zendesk_apps_tools/settings.rb