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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- excesselt (1.0.0)
4
+ excesselt (1.1.0)
5
5
  builder (= 2.1.2)
6
6
  nokogiri (= 1.4.3.1)
7
7
 
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.0.0"
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-08}
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/excesselt_spec.rb",
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
  ]
@@ -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 Included Modules/
37
+ if e.message =~ /With selector .* and included modules/
38
38
  raise e
39
39
  else
40
- raise e.class, "With Included Modules: #{@extensions.inspect}\n#{e.message}\n#{e.backtrace.join("\n")}"
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
 
@@ -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
- generate_element(Nokogiri::XML(xml, nil, nil, Nokogiri::XML::ParseOptions.new).root)
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.0.0'
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
@@ -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 Included Modules: \[TestHelper\]/}
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: 23
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
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-08 00:00:00 +11:00
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
- - !ruby/object:Gem::Dependency
35
+ name: nokogiri
39
36
  prerelease: false
40
37
  type: :runtime
41
- name: builder
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
- - !ruby/object:Gem::Dependency
51
+ name: builder
55
52
  prerelease: false
56
- type: :development
57
- name: activesupport
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
- - !ruby/object:Gem::Dependency
65
+ name: activesupport
69
66
  prerelease: false
70
67
  type: :development
71
- name: rake
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
- - !ruby/object:Gem::Dependency
79
+ name: rake
83
80
  prerelease: false
84
81
  type: :development
85
- name: rspec
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
- - !ruby/object:Gem::Dependency
95
+ name: rspec
99
96
  prerelease: false
100
97
  type: :development
101
- name: rcov
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
- - !ruby/object:Gem::Dependency
109
+ name: rcov
113
110
  prerelease: false
114
111
  type: :development
115
- name: ruby-debug
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
- - !ruby/object:Gem::Dependency
123
+ name: ruby-debug
127
124
  prerelease: false
128
125
  type: :development
129
- name: jeweler
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