xml_hate 0.8.3.2 → 0.8.3.3
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.
- data/.travis.yml +12 -0
- data/Rakefile +9 -0
- data/lib/xml_hate/node.rb +8 -1
- data/lib/xml_hate/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/xml_hate/node_spec.rb +22 -0
- data/xml_hate.gemspec +2 -1
- metadata +20 -5
data/.travis.yml
ADDED
data/Rakefile
CHANGED
data/lib/xml_hate/node.rb
CHANGED
@@ -25,7 +25,7 @@ module XmlHate
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def create_accessor_for(k, v)
|
28
|
-
property_name = k
|
28
|
+
property_name = get_a_valid_property_name(k)
|
29
29
|
self.instance_variable_set("@#{property_name}", v)
|
30
30
|
self.instance_eval("
|
31
31
|
class << self
|
@@ -33,6 +33,13 @@ module XmlHate
|
|
33
33
|
end")
|
34
34
|
end
|
35
35
|
|
36
|
+
def get_a_valid_property_name(name)
|
37
|
+
name = name.to_s.gsub('-', '_')
|
38
|
+
name = name.gsub('@', '')
|
39
|
+
name = name.gsub(':', '')
|
40
|
+
name.to_sym
|
41
|
+
end
|
42
|
+
|
36
43
|
def convert_the_value_to_the_appropriate_form(the_value)
|
37
44
|
return Node.new(the_value) if the_value.class == Hashie::Mash
|
38
45
|
return the_value.map {|i| i.class == Hashie::Mash ? Node.new(i) : i} if the_value.class == Array
|
data/lib/xml_hate/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/xml_hate/node_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'hashie/hash'
|
1
2
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
3
|
|
3
4
|
describe XmlHate::Node do
|
@@ -121,4 +122,25 @@ describe XmlHate::Node do
|
|
121
122
|
@object.test_this.must_equal "ok"
|
122
123
|
end
|
123
124
|
end
|
125
|
+
|
126
|
+
describe "passing a key with @" do
|
127
|
+
before do
|
128
|
+
@object = XmlHate::Node.new({:"@xml" => "data"})
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should replace the @ with nothing" do
|
132
|
+
@object.xml.must_equal "data"
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe "passing a key with :" do
|
137
|
+
before do
|
138
|
+
@object = XmlHate::Node.new({:"xml:ns" => "data"})
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should replace the @ with nothing" do
|
142
|
+
@object.xmlns.must_equal "data"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
124
146
|
end
|
data/xml_hate.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = ["darren@cauthon.com"]
|
10
10
|
s.homepage = ""
|
11
11
|
s.summary = %q{Handling xml with my own ten-foot poll.}
|
12
|
-
s.description = %q{
|
12
|
+
s.description = %q{xml handling without the xml.}
|
13
13
|
|
14
14
|
s.rubyforge_project = "xml_hate"
|
15
15
|
|
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
# specify any dependencies here; for example:
|
22
22
|
s.add_runtime_dependency 'xml-simple'
|
23
23
|
s.add_runtime_dependency 'hashie'
|
24
|
+
s.add_development_dependency 'rake'
|
24
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xml_hate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
9
|
- 3
|
10
|
-
-
|
11
|
-
version: 0.8.3.
|
10
|
+
- 3
|
11
|
+
version: 0.8.3.3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Darren Cauthon
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-03-
|
19
|
+
date: 2012-03-18 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: xml-simple
|
@@ -46,7 +46,21 @@ dependencies:
|
|
46
46
|
version: "0"
|
47
47
|
type: :runtime
|
48
48
|
version_requirements: *id002
|
49
|
-
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rake
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
description: xml handling without the xml.
|
50
64
|
email:
|
51
65
|
- darren@cauthon.com
|
52
66
|
executables: []
|
@@ -58,6 +72,7 @@ extra_rdoc_files: []
|
|
58
72
|
files:
|
59
73
|
- .gitignore
|
60
74
|
- .rvmrc
|
75
|
+
- .travis.yml
|
61
76
|
- Gemfile
|
62
77
|
- Guardfile
|
63
78
|
- Rakefile
|