Class: PagarMe::Util

Inherits:
Object
  • Object
show all
Defined in:
lib/pagarme/util.rb

Class Method Summary collapse

Class Method Details

.convert_to_pagarme_object(response) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/pagarme/util.rb', line 17

def self.convert_to_pagarme_object(response)
  case response
  when Array
    response.map{ |i| convert_to_pagarme_object(i)}
  when Hash
    self.pagarme_classes.fetch(response['object'], PagarMeObject).build(response)
  else
    response
  end
end

.normalize_array_params(value, current_key) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/pagarme/util.rb', line 49

def self.normalize_array_params(value, current_key)
  ret = []
  value.each do |element|
    case element
    when Hash
      ret += normalize_params(element, current_key)
    when Array
      ret += normalize_array_params(element, current_key)
    else
      ret << ["#{current_key}[]", element]
    end
  end
  ret
end

.normalize_params(parameters, parent = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/pagarme/util.rb', line 33

def self.normalize_params(parameters, parent = nil)
  ret = []
  parameters.each do |k, v|
    current_key = parent ? "#{parent}[#{url_encode(k)}]" : url_encode(k)
    case v
    when Hash
      ret += normalize_params(v, current_key)
    when Array
      ret += normalize_array_params(v, current_key)
    else
      ret << [current_key, v]
    end
  end
  ret
end

.pagarme_classesObject



6
7
8
9
10
11
12
13
14
15
# File 'lib/pagarme/util.rb', line 6

def self.pagarme_classes
  return {
    'transaction' => Transaction,
    'plan' => Plan,
    'customer' => Customer,
    'subscription' => Subscription,
    'address' => Address,
    'phone' => Phone,
  }
end

.url_encode(key) ⇒ Object



28
29
30
# File 'lib/pagarme/util.rb', line 28

def self.url_encode(key)
  URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
end