rslt 1.1.8 → 1.1.9
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.
- checksums.yaml +7 -0
- data/.travis.yml +3 -6
- data/Gemfile +1 -12
- data/Gemfile.lock +32 -41
- data/README.md +9 -8
- data/Rakefile +1 -32
- data/lib/rslt/element_wrapper.rb +2 -2
- data/lib/rslt.rb +3 -1
- data/rslt.gemspec +10 -110
- data/spec/excesselt_spec.rb +3 -2
- data/spec/support/matchers/dom_matcher.rb +4 -4
- data/tasks/rspec.rake +4 -4
- metadata +43 -198
- data/History.txt +0 -4
- data/PostInstall.txt +0 -1
- data/rdoc/RSLT/ElementWrapper.html +0 -357
- data/rdoc/RSLT/Rule.html +0 -379
- data/rdoc/RSLT/Stylesheet.html +0 -311
- data/rdoc/RSLT.html +0 -132
- data/rdoc/created.rid +0 -6
- data/rdoc/images/add.png +0 -0
- data/rdoc/images/brick.png +0 -0
- data/rdoc/images/brick_link.png +0 -0
- data/rdoc/images/bug.png +0 -0
- data/rdoc/images/bullet_black.png +0 -0
- data/rdoc/images/bullet_toggle_minus.png +0 -0
- data/rdoc/images/bullet_toggle_plus.png +0 -0
- data/rdoc/images/date.png +0 -0
- data/rdoc/images/delete.png +0 -0
- data/rdoc/images/find.png +0 -0
- data/rdoc/images/loadingAnimation.gif +0 -0
- data/rdoc/images/macFFBgHack.png +0 -0
- data/rdoc/images/package.png +0 -0
- data/rdoc/images/page_green.png +0 -0
- data/rdoc/images/page_white_text.png +0 -0
- data/rdoc/images/page_white_width.png +0 -0
- data/rdoc/images/plugin.png +0 -0
- data/rdoc/images/ruby.png +0 -0
- data/rdoc/images/tag_blue.png +0 -0
- data/rdoc/images/tag_green.png +0 -0
- data/rdoc/images/transparent.png +0 -0
- data/rdoc/images/wrench.png +0 -0
- data/rdoc/images/wrench_orange.png +0 -0
- data/rdoc/images/zoom.png +0 -0
- data/rdoc/index.html +0 -75
- data/rdoc/js/darkfish.js +0 -153
- data/rdoc/js/jquery.js +0 -18
- data/rdoc/js/navigation.js +0 -142
- data/rdoc/js/search.js +0 -94
- data/rdoc/js/search_index.js +0 -1
- data/rdoc/js/searcher.js +0 -228
- data/rdoc/rdoc.css +0 -543
- data/rdoc/table_of_contents.html +0 -83
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 7dfe8876145e215288b8cb5b830f25a4c86bfafe
|
|
4
|
+
data.tar.gz: d6734c467028d7989b634821ab2aa11b61dc3ffb
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: d27f40356045002874de94204b68f4d3fe2a162381200e3e528f47bef81f739593fef5eaf42a5911faf4964264cd5378c01ffaedbb79afc0b1dba39b75b9cc63
|
|
7
|
+
data.tar.gz: 2057abc8291c8249ee74e0ea8de1c1be6b63fd924a87a63995168d2a942cb0021558c5afb1da88bdfc7f53c0be7ea37d18e74dced59c6caf1072586e68ed30a7
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
1
|
source "http://rubygems.org"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
gem 'builder'
|
|
5
|
-
|
|
6
|
-
group :development do
|
|
7
|
-
gem 'activesupport'
|
|
8
|
-
gem 'rake'
|
|
9
|
-
gem 'i18n'
|
|
10
|
-
gem 'rspec', '>2.0.0'
|
|
11
|
-
gem 'rcov', :platform => 'ruby_18'
|
|
12
|
-
gem 'ruby-debug', :platform => 'ruby_18'
|
|
13
|
-
gem 'jeweler'
|
|
14
|
-
end
|
|
3
|
+
gemspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,53 +1,44 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
rslt (1.1.9)
|
|
5
|
+
builder
|
|
6
|
+
nokogiri (< 1.6)
|
|
7
|
+
|
|
1
8
|
GEM
|
|
2
9
|
remote: http://rubygems.org/
|
|
3
10
|
specs:
|
|
4
|
-
activesupport (
|
|
5
|
-
i18n (~> 0.6)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
rspec-core (~> 2.9.0)
|
|
29
|
-
rspec-expectations (~> 2.9.0)
|
|
30
|
-
rspec-mocks (~> 2.9.0)
|
|
31
|
-
rspec-core (2.9.0)
|
|
32
|
-
rspec-expectations (2.9.1)
|
|
33
|
-
diff-lcs (~> 1.1.3)
|
|
34
|
-
rspec-mocks (2.9.0)
|
|
35
|
-
ruby-debug (0.10.4)
|
|
36
|
-
columnize (>= 0.1)
|
|
37
|
-
ruby-debug-base (~> 0.10.4.0)
|
|
38
|
-
ruby-debug-base (0.10.4)
|
|
39
|
-
linecache (>= 0.3)
|
|
11
|
+
activesupport (4.1.1)
|
|
12
|
+
i18n (~> 0.6, >= 0.6.9)
|
|
13
|
+
json (~> 1.7, >= 1.7.7)
|
|
14
|
+
minitest (~> 5.1)
|
|
15
|
+
thread_safe (~> 0.1)
|
|
16
|
+
tzinfo (~> 1.1)
|
|
17
|
+
builder (3.2.2)
|
|
18
|
+
diff-lcs (1.2.5)
|
|
19
|
+
i18n (0.6.9)
|
|
20
|
+
json (1.8.1)
|
|
21
|
+
minitest (5.3.3)
|
|
22
|
+
nokogiri (1.5.11)
|
|
23
|
+
rake (10.3.1)
|
|
24
|
+
rspec (2.14.1)
|
|
25
|
+
rspec-core (~> 2.14.0)
|
|
26
|
+
rspec-expectations (~> 2.14.0)
|
|
27
|
+
rspec-mocks (~> 2.14.0)
|
|
28
|
+
rspec-core (2.14.8)
|
|
29
|
+
rspec-expectations (2.14.5)
|
|
30
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
31
|
+
rspec-mocks (2.14.6)
|
|
32
|
+
thread_safe (0.3.3)
|
|
33
|
+
tzinfo (1.1.0)
|
|
34
|
+
thread_safe (~> 0.1)
|
|
40
35
|
|
|
41
36
|
PLATFORMS
|
|
42
37
|
ruby
|
|
43
38
|
|
|
44
39
|
DEPENDENCIES
|
|
45
40
|
activesupport
|
|
46
|
-
builder
|
|
47
41
|
i18n
|
|
48
|
-
jeweler
|
|
49
|
-
nokogiri
|
|
50
42
|
rake
|
|
51
|
-
|
|
43
|
+
rslt!
|
|
52
44
|
rspec (> 2.0.0)
|
|
53
|
-
ruby-debug
|
data/README.md
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
# RSLT
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
RSLT lets you describe a transformation between one XML format and another.
|
|
4
|
+
The idea is it's as functional as XSLT, but encourages stylesheets which are readable, modular and easy to test.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
I've extracted it from an app I built for my work at Lonely Planet.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Use it instead of XSLT if you have any complex transformation rules.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
My colleague at Lonely Planet, Jani Patokallio, has written up an excellent description [over here](http://hackpackers.lonelyplanet.com/2013/03/05/XML-Transformation-With-RSLT.html)
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+

|
|
12
13
|
|
|
13
|
-
## FEATURES
|
|
14
|
+
## FEATURES
|
|
14
15
|
|
|
15
16
|
Nice syntax.
|
|
16
17
|
Testable, reusable xml transformation
|
|
17
|
-
|
|
18
|
+
Supported on MRI 1.9.3 and above, and tested against several others via TravisCI.
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
+
## Example
|
|
20
21
|
|
|
21
22
|
class MyStylesheet < RSLT::Stylesheet
|
|
22
23
|
def rules
|
data/Rakefile
CHANGED
|
@@ -8,39 +8,8 @@ rescue Bundler::BundlerError => e
|
|
|
8
8
|
$stderr.puts "Run `bundle install` to install missing gems"
|
|
9
9
|
exit e.status_code
|
|
10
10
|
end
|
|
11
|
-
require 'jeweler'
|
|
12
|
-
require './lib/rslt'
|
|
13
|
-
Jeweler::Tasks.new do |s|
|
|
14
|
-
s.platform = Gem::Platform::RUBY
|
|
15
|
-
s.name = 'rslt'
|
|
16
|
-
s.version = RSLT::VERSION
|
|
17
|
-
s.summary = 'Helps you to transform XML without using XSLT.'
|
|
18
|
-
s.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.'
|
|
19
11
|
|
|
20
|
-
|
|
21
|
-
s.required_rubygems_version = ">= 1.3.6"
|
|
22
|
-
|
|
23
|
-
s.author = 'Daniel Heath'
|
|
24
|
-
s.email = ['daniel.r.heath@gmail.com']
|
|
25
|
-
s.homepage = 'http://www.github.com/danielheath/rslt'
|
|
26
|
-
|
|
27
|
-
# Would be good to take a stylesheet and an xml file as arguments for a binary.
|
|
28
|
-
# s.bindir = 'bin'
|
|
29
|
-
# s.executables = ['rslt']
|
|
30
|
-
# s.default_executable = 'rslt'
|
|
31
|
-
|
|
32
|
-
s.rdoc_options = ["--charset=UTF-8", "-mREADME.md"]
|
|
33
|
-
|
|
34
|
-
s.add_dependency('nokogiri', '~>1')
|
|
35
|
-
s.add_dependency('builder', '>2')
|
|
36
|
-
s.add_development_dependency('activesupport')
|
|
37
|
-
s.add_development_dependency('rake')
|
|
38
|
-
s.add_development_dependency('i18n')
|
|
39
|
-
s.add_development_dependency('rspec', '>2.0.0')
|
|
40
|
-
s.add_development_dependency('rcov')
|
|
41
|
-
s.add_development_dependency('ruby-debug')
|
|
42
|
-
s.add_development_dependency('jeweler')
|
|
43
|
-
end
|
|
12
|
+
require 'rslt'
|
|
44
13
|
|
|
45
14
|
require 'rdoc/task'
|
|
46
15
|
RDoc::Task.new do |rdoc|
|
data/lib/rslt/element_wrapper.rb
CHANGED
|
@@ -11,9 +11,9 @@ module RSLT
|
|
|
11
11
|
|
|
12
12
|
def child_content(selector=nil)
|
|
13
13
|
elements = selector ? @element.css(selector) : @element.children
|
|
14
|
-
elements.
|
|
14
|
+
elements.map do |child|
|
|
15
15
|
stylesheet.generate_element(child)
|
|
16
|
-
end
|
|
16
|
+
end.join
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def method_missing(sym, *args)
|
data/lib/rslt.rb
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
$:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
2
2
|
|
|
3
3
|
module RSLT
|
|
4
|
-
VERSION = '1.1.
|
|
4
|
+
VERSION = '1.1.9'
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require 'builder'
|
|
7
9
|
require 'rslt/stylesheet'
|
|
8
10
|
require 'rslt/rule'
|
|
9
11
|
require 'rslt/element_wrapper'
|
data/rslt.gemspec
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
1
|
# -*- encoding: utf-8 -*-
|
|
5
2
|
|
|
6
3
|
Gem::Specification.new do |s|
|
|
7
4
|
s.name = "rslt"
|
|
8
|
-
s.version = "1.1.
|
|
5
|
+
s.version = "1.1.9"
|
|
9
6
|
|
|
10
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
|
|
11
8
|
s.authors = ["Daniel Heath"]
|
|
@@ -20,62 +17,20 @@ Gem::Specification.new do |s|
|
|
|
20
17
|
".travis.yml",
|
|
21
18
|
"Gemfile",
|
|
22
19
|
"Gemfile.lock",
|
|
23
|
-
"History.txt",
|
|
24
|
-
"PostInstall.txt",
|
|
25
20
|
"README.md",
|
|
26
21
|
"Rakefile",
|
|
27
|
-
"TODO",
|
|
28
22
|
"lib/rslt.rb",
|
|
29
23
|
"lib/rslt/element_wrapper.rb",
|
|
30
24
|
"lib/rslt/rule.rb",
|
|
31
25
|
"lib/rslt/stylesheet.rb",
|
|
32
|
-
"rdoc/RSLT.html",
|
|
33
|
-
"rdoc/RSLT/ElementWrapper.html",
|
|
34
|
-
"rdoc/RSLT/Rule.html",
|
|
35
|
-
"rdoc/RSLT/Stylesheet.html",
|
|
36
|
-
"rdoc/created.rid",
|
|
37
|
-
"rdoc/images/add.png",
|
|
38
|
-
"rdoc/images/brick.png",
|
|
39
|
-
"rdoc/images/brick_link.png",
|
|
40
|
-
"rdoc/images/bug.png",
|
|
41
|
-
"rdoc/images/bullet_black.png",
|
|
42
|
-
"rdoc/images/bullet_toggle_minus.png",
|
|
43
|
-
"rdoc/images/bullet_toggle_plus.png",
|
|
44
|
-
"rdoc/images/date.png",
|
|
45
|
-
"rdoc/images/delete.png",
|
|
46
|
-
"rdoc/images/find.png",
|
|
47
|
-
"rdoc/images/loadingAnimation.gif",
|
|
48
|
-
"rdoc/images/macFFBgHack.png",
|
|
49
|
-
"rdoc/images/package.png",
|
|
50
|
-
"rdoc/images/page_green.png",
|
|
51
|
-
"rdoc/images/page_white_text.png",
|
|
52
|
-
"rdoc/images/page_white_width.png",
|
|
53
|
-
"rdoc/images/plugin.png",
|
|
54
|
-
"rdoc/images/ruby.png",
|
|
55
|
-
"rdoc/images/tag_blue.png",
|
|
56
|
-
"rdoc/images/tag_green.png",
|
|
57
|
-
"rdoc/images/transparent.png",
|
|
58
|
-
"rdoc/images/wrench.png",
|
|
59
|
-
"rdoc/images/wrench_orange.png",
|
|
60
|
-
"rdoc/images/zoom.png",
|
|
61
|
-
"rdoc/index.html",
|
|
62
|
-
"rdoc/js/darkfish.js",
|
|
63
|
-
"rdoc/js/jquery.js",
|
|
64
|
-
"rdoc/js/navigation.js",
|
|
65
|
-
"rdoc/js/search.js",
|
|
66
|
-
"rdoc/js/search_index.js",
|
|
67
|
-
"rdoc/js/searcher.js",
|
|
68
|
-
"rdoc/rdoc.css",
|
|
69
|
-
"rdoc/table_of_contents.html",
|
|
70
26
|
"rslt.gemspec",
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
|
|
27
|
+
"tasks/rspec.rake"
|
|
28
|
+
]
|
|
29
|
+
s.test_files = [
|
|
74
30
|
"spec/element_wrapper_spec.rb",
|
|
75
31
|
"spec/excesselt_spec.rb",
|
|
76
32
|
"spec/spec_helper.rb",
|
|
77
33
|
"spec/support/matchers/dom_matcher.rb",
|
|
78
|
-
"tasks/rspec.rake"
|
|
79
34
|
]
|
|
80
35
|
s.homepage = "http://www.github.com/danielheath/rslt"
|
|
81
36
|
s.rdoc_options = ["--charset=UTF-8", "-mREADME.md"]
|
|
@@ -84,67 +39,12 @@ Gem::Specification.new do |s|
|
|
|
84
39
|
s.rubygems_version = "1.8.10"
|
|
85
40
|
s.summary = "Helps you to transform XML without using XSLT."
|
|
86
41
|
|
|
87
|
-
|
|
88
|
-
|
|
42
|
+
s.add_runtime_dependency(%q<nokogiri>, ["< 1.6"])
|
|
43
|
+
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
|
44
|
+
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
|
45
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
|
46
|
+
s.add_development_dependency(%q<i18n>, [">= 0"])
|
|
47
|
+
s.add_development_dependency(%q<rspec>, ["> 2.0.0"])
|
|
89
48
|
|
|
90
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
91
|
-
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
|
92
|
-
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
|
93
|
-
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
|
94
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
|
95
|
-
s.add_development_dependency(%q<i18n>, [">= 0"])
|
|
96
|
-
s.add_development_dependency(%q<rspec>, ["> 2.0.0"])
|
|
97
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
|
98
|
-
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
|
99
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
100
|
-
s.add_runtime_dependency(%q<nokogiri>, ["~> 1"])
|
|
101
|
-
s.add_runtime_dependency(%q<builder>, ["> 2"])
|
|
102
|
-
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
|
103
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
|
104
|
-
s.add_development_dependency(%q<i18n>, [">= 0"])
|
|
105
|
-
s.add_development_dependency(%q<rspec>, ["> 2.0.0"])
|
|
106
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
|
107
|
-
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
|
108
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
109
|
-
else
|
|
110
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
|
111
|
-
s.add_dependency(%q<builder>, [">= 0"])
|
|
112
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
|
113
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
|
114
|
-
s.add_dependency(%q<i18n>, [">= 0"])
|
|
115
|
-
s.add_dependency(%q<rspec>, ["> 2.0.0"])
|
|
116
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
|
117
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
118
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
119
|
-
s.add_dependency(%q<nokogiri>, ["~> 1"])
|
|
120
|
-
s.add_dependency(%q<builder>, ["> 2"])
|
|
121
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
|
122
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
|
123
|
-
s.add_dependency(%q<i18n>, [">= 0"])
|
|
124
|
-
s.add_dependency(%q<rspec>, ["> 2.0.0"])
|
|
125
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
|
126
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
127
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
128
|
-
end
|
|
129
|
-
else
|
|
130
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
|
131
|
-
s.add_dependency(%q<builder>, [">= 0"])
|
|
132
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
|
133
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
|
134
|
-
s.add_dependency(%q<i18n>, [">= 0"])
|
|
135
|
-
s.add_dependency(%q<rspec>, ["> 2.0.0"])
|
|
136
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
|
137
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
138
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
139
|
-
s.add_dependency(%q<nokogiri>, ["~> 1"])
|
|
140
|
-
s.add_dependency(%q<builder>, ["> 2"])
|
|
141
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
|
142
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
|
143
|
-
s.add_dependency(%q<i18n>, [">= 0"])
|
|
144
|
-
s.add_dependency(%q<rspec>, ["> 2.0.0"])
|
|
145
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
|
146
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
147
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
148
|
-
end
|
|
149
49
|
end
|
|
150
50
|
|
data/spec/excesselt_spec.rb
CHANGED
|
@@ -22,6 +22,7 @@ describe "rslt" do
|
|
|
22
22
|
def rules
|
|
23
23
|
render('parent > child') { builder.p(:style => "child_content" ) { child_content } }
|
|
24
24
|
render('parent') { builder.p(:style => "parent_content") { child_content } }
|
|
25
|
+
render('grandparent') { child_content }
|
|
25
26
|
helper TestHelper do
|
|
26
27
|
render('parent.explode > text()', :with => :a_method_that_doesnt_exist)
|
|
27
28
|
within 'parent' do
|
|
@@ -36,9 +37,9 @@ describe "rslt" do
|
|
|
36
37
|
|
|
37
38
|
it "should transform a hello world document according to a stylesheet" do
|
|
38
39
|
xml = <<-XML
|
|
39
|
-
<parent>
|
|
40
|
+
<grandparent><parent>
|
|
40
41
|
<child>Hello World</child>
|
|
41
|
-
</parent>
|
|
42
|
+
</parent></grandparent>
|
|
42
43
|
XML
|
|
43
44
|
expected = <<-EXPECTED
|
|
44
45
|
<p style="parent_content">
|
|
@@ -2,11 +2,11 @@ require 'nokogiri'
|
|
|
2
2
|
require 'active_support/core_ext/hash/conversions'
|
|
3
3
|
|
|
4
4
|
RSpec::Matchers.define :match_the_dom_of do |expected_xml_string|
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
def describe(string)
|
|
7
7
|
string ? string.to_s.gsub('"', "'").strip.inspect : 'NIL'
|
|
8
8
|
end
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
failure_message_for_should_not do |actual|
|
|
11
11
|
"expected that #{describe(actual)} would not match the dom of #{describe(expected)}"
|
|
12
12
|
end
|
|
@@ -14,7 +14,7 @@ RSpec::Matchers.define :match_the_dom_of do |expected_xml_string|
|
|
|
14
14
|
failure_message_for_should do |actual|
|
|
15
15
|
<<-MESSAGE
|
|
16
16
|
|
|
17
|
-
expected first, but got second:
|
|
17
|
+
expected first, but got second:
|
|
18
18
|
#{describe(expected) }
|
|
19
19
|
#{describe(actual) }
|
|
20
20
|
|
|
@@ -36,7 +36,7 @@ expected actual not to equal expected:
|
|
|
36
36
|
def hash_for(string)
|
|
37
37
|
Hash.from_xml("<container>#{string.to_s.gsub(' ', '').gsub("\n", '')}</container>")['container']
|
|
38
38
|
end
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
match do |actual_xml_string|
|
|
41
41
|
expected_hash = hash_for(expected_xml_string)
|
|
42
42
|
actual_hash = hash_for(actual_xml_string)
|
data/tasks/rspec.rake
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
require 'rspec/core/rake_task'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
begin
|
|
4
|
+
require 'rcov'
|
|
4
5
|
desc "Run all specs with rcov"
|
|
5
6
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
6
7
|
t.rcov = true
|
|
7
8
|
t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --failure-threshold 100}
|
|
8
9
|
end
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
desc "Run all specs"
|
|
10
|
+
rescue LoadError
|
|
11
|
+
desc "Run all specs (without coverage tests)"
|
|
12
12
|
RSpec::Core::RakeTask.new(:spec)
|
|
13
13
|
end
|