cxml-ruby 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce8099da5b031d246dc2a1b8d30573135a3c35c233a003f337093d427cefbf1c
4
- data.tar.gz: f5c612fcfbd98677ee6c1997a9d99f8b696434cef5a8b9df10cc02019b609451
3
+ metadata.gz: ca2ed654a5b8543d2beb69ec7acb0db49b2f1fbd7210ef1d4928b4da4fa0cb96
4
+ data.tar.gz: 90b66c83fe8ea876050daad559ecd0b3349d578ab1ea21e0ef79e234c0382e44
5
5
  SHA512:
6
- metadata.gz: 83392422960e9a04d9a1d1a0becf00de7d424e7f79167a204fbfd3a582be98280c9f063658537a4c7a07d4d0931f0167b6265cb5c662cc5b1b0f63f96836a057
7
- data.tar.gz: b55b5c92d354643dcd877016a6ef0ca8f0599d21cd5a3ab419eeddafa9864ef888a8c7c396caf634eb93944c61919f5900eb0ed2097a2b7b6903353046d513f9
6
+ metadata.gz: 12d39fe0bd266b4308853a8bd2a331cc546e0ca43643629dbe264ea3f44cdaeb5d55ac7590e42e1297b7dcd957d1f91daba4af96b19e96b0d92548f47f51f307
7
+ data.tar.gz: 1c9ab1f5f5c03555e9ac12ceedd41afa016a25c38cde5e2eea01ee9792953fb1aad10bc3b47254729daf5563b178534b0c6bd5da2ae65e17bff334f28f4510b5
data/CHANGELOG.md CHANGED
@@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
14
 
15
15
  ---
16
16
 
17
+ ## [0.4.0] - 2020-04-20
18
+ ### Changed
19
+ - Return parsed nodes as plain string if they have no attributes and only string content.
20
+
17
21
  ## [0.3.0] - 2020-04-19
18
22
  ### Changed
19
23
  - Drop Nokogiri and XMLSimple in favor of Ox.
@@ -127,7 +127,15 @@ module CXML
127
127
  rescue NameError => e
128
128
  raise(e) unless e.to_s.match?(klass)
129
129
 
130
- send("#{key}=", val)
130
+ initialize_attribute_raw(key, val)
131
+ end
132
+
133
+ def initialize_attribute_raw(key, val)
134
+ if val.is_a?(Hash) && val.keys == [:content]
135
+ send("#{key}=", val[:content])
136
+ else
137
+ send("#{key}=", val)
138
+ end
131
139
  end
132
140
 
133
141
  def camelize(string, uppercase_first_letter = true)
data/lib/cxml/parser.rb CHANGED
@@ -22,10 +22,11 @@ module CXML
22
22
 
23
23
  private
24
24
 
25
- def node_to_hash(node)
25
+ def node_to_hash(node) # rubocop:disable Metrics/AbcSize
26
26
  return node if node.is_a? String
27
+ return node.nodes.first if node.nodes.all?(String) && node.attributes.empty?
27
28
 
28
- hash = node.attributes || {}
29
+ hash = node.attributes
29
30
  hash.transform_keys!(&method(:underscore_key))
30
31
  node.nodes.reduce(hash) do |acc, child_node|
31
32
  next acc if child_node.is_a?(Ox::Comment)
data/lib/cxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CXML
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
@@ -31,6 +31,7 @@ describe CXML::PunchOutSetupRequest do
31
31
  punch_out_setup_request_coupa.extrinsics.should be_a Array
32
32
  punch_out_setup_request_coupa.extrinsics.first.should be_a CXML::Extrinsic
33
33
  punch_out_setup_request_coupa.extrinsics.first.name.should_not be_nil
34
+ doc_coupa.header.sender.credential.shared_secret.should eq('test')
34
35
  end
35
36
  it 'sets the shipping attributes when present' do
36
37
  data = CXML::Parser.new(data: fixture('punch_out_setup_request_doc_with_ship_to.xml')).parse
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cxml-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Beckman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-19 00:00:00.000000000 Z
12
+ date: 2020-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ox