xml_resource 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49c8c1c5f8723060db353908111209349586cabd
4
- data.tar.gz: fa85add787dd73c08c2119efb09e852c3186c1d7
3
+ metadata.gz: de1ab78fcc96262051a83dcdb86d0ffcefb32c91
4
+ data.tar.gz: 61e48f997133bc8a877a5185556365b164ad1567
5
5
  SHA512:
6
- metadata.gz: 654917f32e7acff9e9e36b59b7790beb3062d504568cb662211cb1528587303d1c92aba0cf502c9deb05fcf738721b633e8d0c9552b0c4dd1aa69c74ad133863
7
- data.tar.gz: dc1ca45a9f0a90cf6a25d87d0e4f4965fe06eedfb93aac4e7dd4ac09038ca03cb95edbdb4e7d4851b507f286c3d6b85dd5c6e02f1a8e2c2ce749b31f9774b475
6
+ metadata.gz: 13ea4d58a8fbed8d619cffd73b46e2ef5db4af97a7653b8b9d717a64cac0909e08f0118d1386ce37d5e09a7e5d89d3bf8247a76fa89dd0ce3676021804e87587
7
+ data.tar.gz: e3d202e1fa89698f9bf2a851e45d9b2dac3bc06b65752189b889407331155901161ea9221f757d23d8b4fe3082d53add71b607edad5b64e2eeb5a4eb0e2c5228
@@ -132,8 +132,8 @@ module XmlResource
132
132
  when :float then value.to_f
133
133
  when :boolean then cast_to_boolean(value)
134
134
  when :decimal then BigDecimal.new(value)
135
- when :date then Date.parse(value)
136
- when :datetime then DateTime.parse(value)
135
+ when :date then value.presence && Date.parse(value)
136
+ when :time then value.presence && Time.parse(value)
137
137
  else
138
138
  raise XmlResource::TypeCastError, "don't know how to cast #{value.inspect} to #{type}"
139
139
  end
@@ -1,3 +1,3 @@
1
1
  module XmlResource
2
- VERSION = '3.0.0'
2
+ VERSION = '3.1.0'
3
3
  end
data/test/data/orders.xml CHANGED
@@ -5,6 +5,7 @@
5
5
  <info>
6
6
  <foo type="bar">A</foo>
7
7
  <date>2012-08-27</date>
8
+ <created_at>2017-06-15 12:00:00</created_at>
8
9
  <foo type="non">sense</foo>
9
10
  </info>
10
11
  <shipping_cost>12.99</shipping_cost>
@@ -31,6 +32,7 @@
31
32
  <foo type="non">blubb</foo>
32
33
  <foo type="bar">B</foo>
33
34
  <date>2012-08-26</date>
35
+ <created_at>2017-01-15 12:00:00</created_at>
34
36
  </info>
35
37
  <shipping_cost>10</shipping_cost>
36
38
  <customer>
@@ -60,6 +62,7 @@
60
62
  <foo type="non">wah</foo>
61
63
  <foo type="bar">C</foo>
62
64
  <date>2012-08-25</date>
65
+ <created_at></created_at>
63
66
  </info>
64
67
  <shipping_cost>-12.99</shipping_cost>
65
68
  <contact>
@@ -6,4 +6,4 @@ class Contact
6
6
  def name
7
7
  "#{first_name} #{last_name}"
8
8
  end
9
- end
9
+ end
data/test/models/order.rb CHANGED
@@ -6,7 +6,8 @@ class Order
6
6
  has_attribute :foobar, :xpath => 'info/foo[@type="bar"]'
7
7
  has_attribute :finished, :type => :boolean
8
8
  has_attribute :shipping_cost, :type => :decimal
9
-
9
+ has_attribute :created_at, type: :time, xpath: 'info/created_at'
10
+
10
11
  has_object :customer, :class_name => "Contact"
11
12
  has_object :contact
12
13
 
@@ -20,7 +20,7 @@ class XmlResourceTest < ActiveSupport::TestCase
20
20
  test 'Instantiation of objects' do
21
21
  assert_equal "Mister Spock", @orders.first.customer.name
22
22
  assert_equal "Käptn Kirk", @orders.second.customer.name
23
- assert_equal nil, @orders.third.customer
23
+ assert_nil @orders.third.customer
24
24
  assert_equal ['E F', 'A B', 'C D'], @orders.map(&:contact).map(&:name)
25
25
  end
26
26
 
@@ -77,10 +77,16 @@ class XmlResourceTest < ActiveSupport::TestCase
77
77
  assert_equal 'foo', gadget.name
78
78
  end
79
79
  assert_raise ArgumentError do
80
- gadget = Gadget.new(nil, magic: 6)
80
+ Gadget.new(nil, magic: 6)
81
81
  end
82
82
  end
83
83
 
84
+ test 'Time attributes are parsed with respect of time zones' do
85
+ assert_equal Time.parse('2017-06-15 12:00:00 +0200'), @orders[0].created_at
86
+ assert_equal '2017-01-15 12:00:00 +0100', @orders[1].created_at.to_s
87
+ assert_nil @orders[2].created_at
88
+ end
89
+
84
90
  private
85
91
 
86
92
  def load_xml(name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xml_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-20 00:00:00.000000000 Z
11
+ date: 2017-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '5.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Create object trees out of XML documents
56
70
  email:
57
71
  - mtgrosser@gmx.net
@@ -99,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
113
  version: '0'
100
114
  requirements: []
101
115
  rubyforge_project:
102
- rubygems_version: 2.4.5
116
+ rubygems_version: 2.6.11
103
117
  signing_key:
104
118
  specification_version: 4
105
119
  summary: Turn XML into Ruby objects