Class: AdobeConnect::ParamFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/adobe_connect/param_formatter.rb

Overview

Public: Responsible for translating params hashes into query strings

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ ParamFormatter

Public: Create a new AdobeConnect::ParamFormatter.

params - A hash of params to format.



10
11
12
# File 'lib/adobe_connect/param_formatter.rb', line 10

def initialize(params)
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



5
6
7
# File 'lib/adobe_connect/param_formatter.rb', line 5

def params
  @params
end

Instance Method Details

#formatObject

Public: Translate a hash of params into a query string. Dasherize any underscored values, and escape URL unfriendly values.

Returns a query string.



18
19
20
21
22
23
24
# File 'lib/adobe_connect/param_formatter.rb', line 18

def format
  params.sort_by { |k, v| k.to_s }.inject(['']) do |array, param|
    param[1] = format_datetime(param[1]) if param[1].respond_to?(:strftime)
    key, value = param.map { |p| ERB::Util.url_encode(p) }
    array << "#{key.dasherize}=#{value}"
  end.join('&')
end

#format_datetime(dt) ⇒ Object (private)



27
28
29
# File 'lib/adobe_connect/param_formatter.rb', line 27

def format_datetime(dt)
  dt.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
end