xml_hate 0.8.3.2 → 0.8.3.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|