Skip to content

Commit 0a13fa8

Browse files
committed
merging PR Empact#52
2 parents 8649169 + 2dc7d42 commit 0a13fa8

6 files changed

Lines changed: 13 additions & 5 deletions

File tree

‎Gemfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ group :development, :test do
1111
gem 'sqlite3', '>= 1.2.4'
1212
gem 'activerecord', '~> 3.1'
1313
gem 'rack', '< 2.0.0'
14+
gem 'equivalent-xml', '>= 0.6.0'
1415
end

‎Gemfile.lock‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ GEM
2020
descendants_tracker (0.0.4)
2121
thread_safe (~> 0.3, >= 0.3.1)
2222
diff-lcs (1.1.3)
23+
equivalent-xml (0.6.0)
24+
nokogiri (>= 1.4.3)
2325
faraday (0.12.2)
2426
multipart-post (>= 1.2, < 3)
2527
git (1.3.0)
@@ -82,6 +84,7 @@ PLATFORMS
8284
DEPENDENCIES
8385
activerecord (~> 3.1)
8486
activesupport (~> 3.1)
87+
equivalent-xml (>= 0.6.0)
8588
jeweler (< 2.2.0)
8689
nokogiri (>= 1.3.3)
8790
rack (< 2.0.0)

‎lib/roxml.rb‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def to_xml(params = {})
4242
ref.update_xml(root, value)
4343
end
4444
end
45+
params[:namespaces].each { |prefix, url| root.add_namespace_definition(prefix, url) } if params[:namespaces]
4546
end
4647
end
4748
end

‎roxml.gemspec‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,10 @@ Gem::Specification.new do |s|
141141
s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
142142
s.add_development_dependency(%q<rake>, [">= 0"])
143143
s.add_development_dependency(%q<jeweler>, [">= 0"])
144-
s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
144+
s.add_development_dependency(%q<rspec>, ["~> 2.0"])
145145
s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
146146
s.add_development_dependency(%q<activerecord>, [">= 2.2.2"])
147+
s.add_development_dependency(%q<equivalent-xml>, [">= 0.6.0"])
147148
else
148149
s.add_dependency(%q<activesupport>, [">= 2.3.0"])
149150
s.add_dependency(%q<nokogiri>, [">= 1.3.3"])

‎spec/spec_helper.rb‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
require 'rubygems'
33
require 'pathname'
44
require 'ostruct'
5+
require 'rspec/matchers' # req by equivalent-xml custom matcher `be_equivalent_to`
6+
require 'equivalent-xml'
57

68
require_relative './../test/support/fixtures'
79
require_relative './../lib/roxml'

‎spec/xml/namespace_spec.rb‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class NetworkConfig
2828

2929
xml_name 'NetworkConfig'
3030
xml_reader :name, :from => '@name'
31-
xml_reader :errors, :as => []
31+
xml_reader :errors, :as => [], :from => 'gronk:error'
3232
xml_accessor :fence_mode, :from => 'vmw:FenceMode'
3333
xml_accessor :dhcp?, :from => 'vmw:Dhcp'
3434
end
@@ -50,9 +50,9 @@ class VApp
5050
describe "#to_xml" do
5151
it "should reproduce the input xml" do
5252
output = ROXML::XML::Document.new
53-
output.root = VApp.from_xml(@xml).to_xml
54-
pending "Full namespace write support"
55-
output.should == ROXML::XML.parse_string(@xml)
53+
namespaces = {'vmw' => "http://foo.example.com", 'gronk' => "http://gronk.example.com"}
54+
output.root = VApp.from_xml(@xml).to_xml(:namespaces => {'vmw' => "http://foo.example.com", 'gronk' => "http://gronk.example.com"})
55+
expect(ROXML::XML.parse_string(output.to_s)).to be_equivalent_to(ROXML::XML.parse_string(@xml))
5656
end
5757
end
5858
end

0 commit comments

Comments
 (0)