excesselt 1.0.0 → 1.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.
- data/Gemfile.lock +1 -1
- data/excesselt.gemspec +5 -3
- data/lib/excesselt/rule.rb +2 -2
- data/lib/excesselt/stylesheet.rb +9 -6
- data/lib/excesselt.rb +2 -2
- data/spec/element_wrapper_spec.rb +22 -0
- data/spec/excesselt_spec.rb +1 -1
- metadata +24 -22
data/Gemfile.lock
CHANGED
data/excesselt.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{excesselt}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Daniel Heath"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-09}
|
13
13
|
s.description = %q{I had a lot of XML transformation to do and the requirements kept changing, so I sat down and wrote something that was easy to modify.}
|
14
14
|
s.email = %q{daniel.r.heath@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -48,6 +48,7 @@ Gem::Specification.new do |s|
|
|
48
48
|
"script/console",
|
49
49
|
"script/destroy",
|
50
50
|
"script/generate",
|
51
|
+
"spec/element_wrapper_spec.rb",
|
51
52
|
"spec/excesselt_spec.rb",
|
52
53
|
"spec/spec_helper.rb",
|
53
54
|
"spec/support/matchers/dom_matcher.rb",
|
@@ -60,7 +61,8 @@ Gem::Specification.new do |s|
|
|
60
61
|
s.rubygems_version = %q{1.3.7}
|
61
62
|
s.summary = %q{Helps you to transform XML without using XSLT.}
|
62
63
|
s.test_files = [
|
63
|
-
"spec/
|
64
|
+
"spec/element_wrapper_spec.rb",
|
65
|
+
"spec/excesselt_spec.rb",
|
64
66
|
"spec/spec_helper.rb",
|
65
67
|
"spec/support/matchers/dom_matcher.rb"
|
66
68
|
]
|
data/lib/excesselt/rule.rb
CHANGED
@@ -34,10 +34,10 @@ module Excesselt
|
|
34
34
|
@extensions.each {|e| wrapper.extend e }
|
35
35
|
wrapper.instance_eval(&@block)
|
36
36
|
rescue Exception => e
|
37
|
-
if e.message =~ /With
|
37
|
+
if e.message =~ /With selector .* and included modules/
|
38
38
|
raise e
|
39
39
|
else
|
40
|
-
raise e.class, "With
|
40
|
+
raise e.class, "With selector #{selector} and included modules: #{@extensions.inspect}\n#{e.message}\n#{e.backtrace.join("\n")}"
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
data/lib/excesselt/stylesheet.rb
CHANGED
@@ -7,15 +7,18 @@ module Excesselt
|
|
7
7
|
def self.transform(xml)
|
8
8
|
self.new.transform(xml)
|
9
9
|
end
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
@builder = Builder::XmlMarkup.new
|
13
|
-
@helper_modules = []
|
14
|
-
@errors = []
|
10
|
+
|
11
|
+
def initialize(options={})
|
12
|
+
@builder = options[:builder] || Builder::XmlMarkup.new
|
13
|
+
@helper_modules = options[:helper_modules] || []
|
14
|
+
@errors = options[:errors] || []
|
15
15
|
end
|
16
16
|
|
17
|
+
# Pass in a string or a Nokogiri Node or Document.
|
17
18
|
def transform(xml)
|
18
|
-
|
19
|
+
xml = xml.root if xml.is_a? Nokogiri::XML::Document
|
20
|
+
xml = Nokogiri::XML(xml, nil, nil, Nokogiri::XML::ParseOptions.new).root unless xml.is_a? Nokogiri::XML::Node
|
21
|
+
generate_element(xml)
|
19
22
|
end
|
20
23
|
|
21
24
|
def generate_element(element)
|
data/lib/excesselt.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
2
2
|
|
3
3
|
module Excesselt
|
4
|
-
VERSION = '1.
|
4
|
+
VERSION = '1.1.0'
|
5
5
|
end
|
6
6
|
|
7
7
|
require 'excesselt/stylesheet'
|
8
8
|
require 'excesselt/rule'
|
9
|
-
require 'excesselt/element_wrapper'
|
9
|
+
require 'excesselt/element_wrapper'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Excesselt::ElementWrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@stylesheet = Object.new
|
7
|
+
@element = Object.new
|
8
|
+
@builder = Object.new
|
9
|
+
@wrapper = Excesselt::ElementWrapper.new(@stylesheet, @element, @builder)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "passing through method calls" do
|
13
|
+
describe "when an error is raised in a passed through call" do
|
14
|
+
it "should raise an error" do
|
15
|
+
lambda {
|
16
|
+
@wrapper.foo
|
17
|
+
}.should raise_exception
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/spec/excesselt_spec.rb
CHANGED
@@ -80,7 +80,7 @@ describe "excesselt" do
|
|
80
80
|
<parent class="explode">foo</parent>
|
81
81
|
XML
|
82
82
|
@instance = @stylesheet.new
|
83
|
-
lambda { @instance.transform(xml) }.should raise_exception {|e| e.message.should =~ /With
|
83
|
+
lambda { @instance.transform(xml) }.should raise_exception {|e| e.message.should =~ /With selector .* and included modules: \[TestHelper\]/}
|
84
84
|
end
|
85
85
|
|
86
86
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excesselt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.0
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Heath
|
@@ -15,13 +15,10 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-09 00:00:00 +11:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
24
|
-
name: nokogiri
|
25
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
23
|
none: false
|
27
24
|
requirements:
|
@@ -35,10 +32,10 @@ dependencies:
|
|
35
32
|
- 1
|
36
33
|
version: 1.4.3.1
|
37
34
|
requirement: *id001
|
38
|
-
|
35
|
+
name: nokogiri
|
39
36
|
prerelease: false
|
40
37
|
type: :runtime
|
41
|
-
|
38
|
+
- !ruby/object:Gem::Dependency
|
42
39
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
43
40
|
none: false
|
44
41
|
requirements:
|
@@ -51,10 +48,10 @@ dependencies:
|
|
51
48
|
- 2
|
52
49
|
version: 2.1.2
|
53
50
|
requirement: *id002
|
54
|
-
|
51
|
+
name: builder
|
55
52
|
prerelease: false
|
56
|
-
type: :
|
57
|
-
|
53
|
+
type: :runtime
|
54
|
+
- !ruby/object:Gem::Dependency
|
58
55
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
59
56
|
none: false
|
60
57
|
requirements:
|
@@ -65,10 +62,10 @@ dependencies:
|
|
65
62
|
- 0
|
66
63
|
version: "0"
|
67
64
|
requirement: *id003
|
68
|
-
|
65
|
+
name: activesupport
|
69
66
|
prerelease: false
|
70
67
|
type: :development
|
71
|
-
|
68
|
+
- !ruby/object:Gem::Dependency
|
72
69
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
73
70
|
none: false
|
74
71
|
requirements:
|
@@ -79,10 +76,10 @@ dependencies:
|
|
79
76
|
- 0
|
80
77
|
version: "0"
|
81
78
|
requirement: *id004
|
82
|
-
|
79
|
+
name: rake
|
83
80
|
prerelease: false
|
84
81
|
type: :development
|
85
|
-
|
82
|
+
- !ruby/object:Gem::Dependency
|
86
83
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
87
84
|
none: false
|
88
85
|
requirements:
|
@@ -95,10 +92,10 @@ dependencies:
|
|
95
92
|
- 0
|
96
93
|
version: 2.0.0
|
97
94
|
requirement: *id005
|
98
|
-
|
95
|
+
name: rspec
|
99
96
|
prerelease: false
|
100
97
|
type: :development
|
101
|
-
|
98
|
+
- !ruby/object:Gem::Dependency
|
102
99
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
103
100
|
none: false
|
104
101
|
requirements:
|
@@ -109,10 +106,10 @@ dependencies:
|
|
109
106
|
- 0
|
110
107
|
version: "0"
|
111
108
|
requirement: *id006
|
112
|
-
|
109
|
+
name: rcov
|
113
110
|
prerelease: false
|
114
111
|
type: :development
|
115
|
-
|
112
|
+
- !ruby/object:Gem::Dependency
|
116
113
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
117
114
|
none: false
|
118
115
|
requirements:
|
@@ -123,10 +120,10 @@ dependencies:
|
|
123
120
|
- 0
|
124
121
|
version: "0"
|
125
122
|
requirement: *id007
|
126
|
-
|
123
|
+
name: ruby-debug
|
127
124
|
prerelease: false
|
128
125
|
type: :development
|
129
|
-
|
126
|
+
- !ruby/object:Gem::Dependency
|
130
127
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
131
128
|
none: false
|
132
129
|
requirements:
|
@@ -137,6 +134,9 @@ dependencies:
|
|
137
134
|
- 0
|
138
135
|
version: "0"
|
139
136
|
requirement: *id008
|
137
|
+
name: jeweler
|
138
|
+
prerelease: false
|
139
|
+
type: :development
|
140
140
|
description: I had a lot of XML transformation to do and the requirements kept changing, so I sat down and wrote something that was easy to modify.
|
141
141
|
email: daniel.r.heath@gmail.com
|
142
142
|
executables: []
|
@@ -178,6 +178,7 @@ files:
|
|
178
178
|
- script/console
|
179
179
|
- script/destroy
|
180
180
|
- script/generate
|
181
|
+
- spec/element_wrapper_spec.rb
|
181
182
|
- spec/excesselt_spec.rb
|
182
183
|
- spec/spec_helper.rb
|
183
184
|
- spec/support/matchers/dom_matcher.rb
|
@@ -222,6 +223,7 @@ signing_key:
|
|
222
223
|
specification_version: 3
|
223
224
|
summary: Helps you to transform XML without using XSLT.
|
224
225
|
test_files:
|
226
|
+
- spec/element_wrapper_spec.rb
|
225
227
|
- spec/excesselt_spec.rb
|
226
228
|
- spec/spec_helper.rb
|
227
229
|
- spec/support/matchers/dom_matcher.rb
|