Sha256: 8bea9bdafedc25890363b08976de3caa07522c9609004a7222030d336d22b325

Contents?: true

Size: 686 Bytes

Versions: 4

Compression:

Stored size: 686 Bytes

Contents

module FireAndForget
  module Utilities
    def to_arguments(params={})
      params.keys.sort { |a, b| a.to_s <=> b.to_s }.map do |key|
        %(--#{key}=#{to_parameter(params[key])})
      end.join(" ")
    end

    # Maps objects to command line parameters suitable for parsing by Thor
    # @see https://github.com/wycats/thor
    def to_parameter(obj)
      case obj
      when String
        obj.inspect
      when Array
        obj.map { |o| to_parameter(o) }.join(' ')
      when Hash
        obj.map do |k, v|
          "#{k}:#{to_parameter(obj[k])}"
        end.join(' ')
      when Numeric
        obj
      else
        to_parameter(obj.to_s)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fire_and_forget-0.3.3 lib/fire_and_forget/utilities.rb
fire_and_forget-0.3.2 lib/fire_and_forget/utilities.rb
fire_and_forget-0.3.1 lib/fire_and_forget/utilities.rb
fire_and_forget-0.3.0 lib/fire_and_forget/utilities.rb