Веб Дизайн - статьи


Как это работает - часть 4


В отладочном выводе хорошо видно как вызов метода трансформируется в SOAP-сообщение. Ответ также очень наглядный: мы видим последовательность вложенных тегов: GetCursOnDateXMLResponse, GetCursOnDateXMLResult и ValuteData. Внутри ValuteData находится список тегов ValuteCursOnDate по одному на каждую валюту. Названия атрибутов также вполне ожидаемые - Vname, Vnom, Vcurs, Vcode и VchCode. Но как нам получить доступ к этим данным из кода Ruby? Для ответа на этот вопрос давайте выведем имена всех доступных методов объекта response в алфавитном порядке:

irb(main):008:0> response.methods.sort

=> ["==", "===", "=~", "__id__", "__send__", "class", "clone", "dclone", "display", "dup", "eql?", "equal?", "extend", "freeze", "frozen?", "gem", "getCursOnDateXMLResult", "getCursOnDateXMLResult=", "hash", "id", "inspect", "instance_eval", "instance_of?", "instance_variable_defined?", "instance_variable_get", "instance_variable_set", "instance_variables", "is_a?", "kind_of?", "method", "methods", "nil?", "object_id", "private_methods", "protected_methods", "public_methods", "require", "require_gem", "respond_to?", "send", "singleton_methods", "taint", "tainted?", "to_a", "to_s", "type", "untaint"]

irb(main):009:0> Обратите внимание на метод getCursOnDateXMLResult. Посмотрим, что он возвращает:

irb(main):009:0> response.getCursOnDateXMLResult.methods.sort

=> ["==", "===", "=~", "__id__", "__send__", "__xmlele_any", "class", "clone", "dclone", "display", "dup", "eql?", "equal?", "extend", "freeze", "frozen?", "gem", "hash", "id", "inspect", "instance_eval", "instance_of?", "instance_variable_defined?", "instance_variable_get", "instance_variable_set", "instance_variables", "is_a?", "kind_of?", "method", "methods", "nil?", "object_id", "private_methods", "protected_methods", "public_methods", "require", "require_gem", "respond_to?", "send", "set_any", "singleton_methods", "taint", "tainted?", "to_a", "to_s", "type", "untaint", "valuteData","valuteData="]




- Начало -  - Назад -  - Вперед -



Книжный магазин