Dynamic method calling
proton opened this issue · 1 comments
proton commented
В 1.2 отвалился динамический вызов методов:
2.0.0p247 :049 > vk.photos
=> #<VkontakteApi::Namespace:0x000000091339c8 @name="photos", @previous_resolver=#<Hashie::Mash name=nil token="728de16c8494909187a16487c550e58e802b70c176278ffefb201c132f533a330e718296d572f511e2e8b">>
2.0.0p247 :050 > vk.send('photos')
NoMethodError: undefined method `inject' for "photos":String
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/vkontakte_api-1.2/lib/vkontakte_api/utils.rb:9:in `flatten_arguments'
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/vkontakte_api-1.2/lib/vkontakte_api/api.rb:16:in `call'
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/vkontakte_api-1.2/lib/vkontakte_api/method.rb:13:in `call'
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/vkontakte_api-1.2/lib/vkontakte_api/resolver.rb:16:in `method_missing'
from (irb):50
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/railties-3.2.14/lib/rails/commands/console.rb:47:in `start'
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/railties-3.2.14/lib/rails/commands/console.rb:8:in `start'
from /home/proton/.rvm/gems/ruby-2.0.0-p247/gems/railties-3.2.14/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
В 1.1 это работало
Сейчас временно заменил send на method_missing
7even commented
Метод #send
теперь проходит через #method_missing
, чтобы работали API-методы типа messages.send
. Если очень нужно вызывать методы динамически, можно попробовать #public_send
(или даже #__send__
).