Sha256: dd37edc0e060aa5b2101a096604f467dbedcd7f1f64f15cec41199c83a617d82
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 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 private def uri_for(path) u = uri.dup u.path = path u.to_s end end # Xml end # Http end # Client end # Bamboo
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bamboo-client-0.0.3 | lib/bamboo-client/http/xml.rb |