Sha256: 83b1af78e37c70f480e947500577206daeff556fd14b2dca162803d1bc848d93

Contents?: true

Size: 1.01 KB

Versions: 16

Compression:

Stored size: 1.01 KB

Contents

module VkontakteApi
  # An utility module able to flatten arguments (join arrays into comma-separated strings).
  module Utils
    class << self
      # A multiple version of `#flatten_argument`. It transforms a hash flattening each value and keeping the keys untouched.
      # @param [Hash] arguments The arguments to flatten.
      # @return [Hash] Flattened arguments.
      def flatten_arguments(arguments)
        arguments.inject({}) do |flat_args, (arg_name, arg_value)|
          flat_args[arg_name] = flatten_argument(arg_value)
          flat_args
        end
      end
      
      # If an argument is an array, it will be joined with a comma; otherwise it'll be returned untouched.
      # @param [Object] argument The argument to flatten.
      def flatten_argument(argument)
        if argument.respond_to?(:join)
          # if argument is an array, we join it with a comma
          argument.join(',')
        else
          # otherwise leave it untouched
          argument
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
vkontakte_api-1.4.4 lib/vkontakte_api/utils.rb
vkontakte_api-1.4.3 lib/vkontakte_api/utils.rb
vkontakte_api-1.4.2 lib/vkontakte_api/utils.rb
vkontakte_api-1.4 lib/vkontakte_api/utils.rb
vkontakte_api-1.3.1 lib/vkontakte_api/utils.rb
vkontakte_api-1.3 lib/vkontakte_api/utils.rb
vkontakte_api-1.2 lib/vkontakte_api/utils.rb
vkontakte_api-1.1 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.4 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.3 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.2 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.1 lib/vkontakte_api/utils.rb
vkontakte_api-1.0 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.rc3 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.rc2 lib/vkontakte_api/utils.rb
vkontakte_api-1.0.rc lib/vkontakte_api/utils.rb