oxml 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: fc41a1f99e55e1b6c66a958db2f156b70aa3c4ebf4ae914ad88dbe6f736727d9
4
- data.tar.gz: e7c07fca0db3d3efa8de3d08c0f7c5ebc99bd0a5d6a8d8bdab0627af47aea519
3
+ metadata.gz: 5b988f65d855a83ee1af67916ec2afe20fb9f3e717f217b66cdf2d8f43a14963
4
+ data.tar.gz: 04c1921e496f7548343ac86dc1333a65035f446540737ba0e41438f1d8e8fac3
5
5
  SHA512:
6
- metadata.gz: ec04f13732b020a73e5f9ad78945075e3dbf08e34867ff8c807d57f842e988659f0ee4e5ae501dfbe7eec1250ecdc8cdab02925cc638b382d0182b70f7b76ddb
7
- data.tar.gz: 2781db0d20428e5d7de268434cf910457f217473306daf1a6dd83462352dce56bf0402cf5b27c87c694efc2ac5288ea61eddf9c011af0f501239c39683bfbf5d
6
+ metadata.gz: 597518cb1ead409f42bd75eeb364fe061e417d8c732e90f60f19787936c5524a90bec725d0a898e7d348e10bdb975c6400cdb2fc4def85be05ab3754d75484f3
7
+ data.tar.gz: 33cafa1c22dc60367a73716f41623e60abedfd3c1fff16daeb909f1023fc7d4d3d618ec6d55d00c2f2834d50c6454615121a25935807bfb70acdd3b8c176c419
data/lib/oxml/parser.rb CHANGED
@@ -14,6 +14,7 @@ module OXML
14
14
  @arr = []
15
15
  @map = {}
16
16
  @name = nil
17
+ @last_attr = nil
17
18
  @strip_namespaces = options.fetch(:strip_namespaces, false)
18
19
  @delete_namespace_attributes = options.fetch(:delete_namespace_attributes, false)
19
20
  @advanced_typecasting = options.fetch(:advanced_typecasting, false)
@@ -27,6 +28,7 @@ module OXML
27
28
  end
28
29
 
29
30
  def attr(name, str)
31
+ @last_attr = "#{name}:#{str}"
30
32
  return if @delete_namespace_attributes
31
33
 
32
34
  return if name == :version
@@ -53,6 +55,13 @@ module OXML
53
55
  text(@memo)
54
56
  end
55
57
 
58
+ def attrs_done
59
+ if @last_attr =~ /nil:true/
60
+ @last_attr = nil
61
+ @arr.last[@name] = nil
62
+ end
63
+ end
64
+
56
65
  def end_element(_name)
57
66
  @memo = @arr.pop
58
67
  end
@@ -71,6 +80,7 @@ module OXML
71
80
  private
72
81
 
73
82
  def cast(value)
83
+ return if value == EMPTY_STR
74
84
  return value unless @advanced_typecasting
75
85
 
76
86
  case value
data/lib/oxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OXML
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxml
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
  - xkwd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-07 00:00:00.000000000 Z
11
+ date: 2023-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ox
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Fast XML to Hash parser built on top of the Ox gem (a native C extension)
42
56
  email:
43
57
  executables: []