wirecardBrasil / moip-sdk-ruby

Cliente em Ruby para integração server-side com APIs Moip v2
MIT License
29 stars 27 forks source link

funding_instrument: method inacessível no Rails por ser palavra reservada #20

Closed ghost closed 7 years ago

ghost commented 8 years ago

Na resposta de pagamentos, existe uma chave que deveria ser acessível por response.funding_instrument.method para retornar 'CREDIT_CARD' ou 'BOLETO', mas 'method' parece ser uma palavra reservada no Rails (parece porque só vi Method nas listas).

Assim, tentar acessar essa key pela maneira convencional dá erro

>> response.funding_instrument.method !! #<ArgumentError: wrong number of arguments (0 for 1)>

Estou acessando via response.funding_instrument.credit_card.present?, mas não acho que é ideal.

Se não tiver como resolver, sugiro ao menos ressaltar isso no README, pra evitar que outros tenha esse erro sem saber porque.

ghost commented 8 years ago

Exemplo:

[23] pry(#<CreatePaymentJob>)> response.funding_instrument
=> #<RecursiveOpenStruct credit_card={:id=>"CRC-Z3MU4AVS1SWT", :brand=>"MASTERCARD", :first6=>"555566", :last4=>"8884", :holder=>{:birthdate=>"1999-12-30", :birth_date=>"1999-12-30", :tax_document=>{:type=>"CPF", :number=>"222.222.222-22"}, :fullname=>"João da Silva"}}, method="CREDIT_CARD">
[24] pry(#<CreatePaymentJob>)> response.funding_instrument.method
ArgumentError: wrong number of arguments (0 for 1)
from (pry):24:in `method'
joaolucasl commented 7 years ago

Oi @hugocbp. Desculpe por ninguem ter respondido antes. Entrei aqui no @moip pra equipe que vai cuidar das SDKs e estamos arrumando a casa agora! :)

É na verdade um problema comObject#method, que é usado para chamar uma função a partir de um símbolo.

Vamos adicionar uma nota quando atualizarmos a documentação para que esse campo seja acessado como response.funding_instrument["method"].

Obrigado! :)