Sha256: f0975936b8cb8c3b8af660f7ce384d87260cab078e75c913cd6d9b0026e6d179
Contents?: true
Size: 1.15 KB
Versions: 4
Compression:
Stored size: 1.15 KB
Contents
require 'nokogiri' module Bamboo module Client module Http class Xml < Abstract class Doc def self.from(str) new(Nokogiri::XML(str)) end def initialize(doc) @doc = doc puts doc.to_s if $DEBUG assert_no_error end def text_for(css) @doc.css(css).text end def objects_for(selector, klass, *extra_args) @doc.css(selector).map { |e| klass.new(e, *extra_args) } end def object_for(selector, klass, *extra_args) node = @doc.css(selector).first node or raise Error, "no node matches selector #{selector.inspect}" klass.new node, *extra_args end private def assert_no_error errors = @doc.css("errors error").map { |e| e.text } unless errors.empty? raise Error, "#{errors.join ' '}" end end end # Doc def post(path, data = {}) Doc.from RestClient.post(uri_for(path), data) end end # Xml end # Http end # Client end # Bamboo
Version data entries
4 entries across 4 versions & 1 rubygems