excesselt 1.0.0 → 1.1.0

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