Module: TorgMailruApi::APIRequest

Included in:
TorgMailruApi
Defined in:
lib/torg_mailru_api.rb

Defined Under Namespace

Classes: DeepOpenStruct

Instance Method Summary collapse

Instance Method Details

#decamelize_hash_keys(value) ⇒ Object

Рекурсивная декамелизация ключей хеша



92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/torg_mailru_api.rb', line 92

def decamelize_hash_keys value
  case value
    when Array
      value.map { |v| decamelize_hash_keys(v) }
    when Hash
      Hash[value.map { |k, v| [ k.scan(/[A-Z][a-z]*|[a-z]+/).join('_').downcase, decamelize_hash_keys(v) ] }]
    when String
      value.gsub(/\s{2,}|[\r\n]/, ' ').strip
    else
      value
   end
end

#get(resource, params = nil) ⇒ DeepOpenStruct

Запрос к API

Parameters:

  • resource (String)

    Ресурс API, к которому осуществляется запрос

  • params (Hash) (defaults to: nil)

    Хеш параметров

Returns:



109
110
111
112
113
# File 'lib/torg_mailru_api.rb', line 109

def get resource, params=nil
  response = super
  hash = decamelize_hash_keys response[response.keys.first]
  DeepOpenStruct.load hash
end

#listing(resource, params = nil) ⇒ Listing

Вспомогательная функция для преобразования ответа API в листинг

Parameters:

  • resource (String)

    Ресурс API, к которому осуществляется запрос

  • params (Hash) (defaults to: nil)

    Хеш параметров

Returns:



119
120
121
# File 'lib/torg_mailru_api.rb', line 119

def listing resource, params=nil
  Listing.new resource, params
end