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.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +3 -6
  3. data/Gemfile +1 -12
  4. data/Gemfile.lock +32 -41
  5. data/README.md +9 -8
  6. data/Rakefile +1 -32
  7. data/lib/rslt/element_wrapper.rb +2 -2
  8. data/lib/rslt.rb +3 -1
  9. data/rslt.gemspec +10 -110
  10. data/spec/excesselt_spec.rb +3 -2
  11. data/spec/support/matchers/dom_matcher.rb +4 -4
  12. data/tasks/rspec.rake +4 -4
  13. metadata +43 -198
  14. data/History.txt +0 -4
  15. data/PostInstall.txt +0 -1
  16. data/rdoc/RSLT/ElementWrapper.html +0 -357
  17. data/rdoc/RSLT/Rule.html +0 -379
  18. data/rdoc/RSLT/Stylesheet.html +0 -311
  19. data/rdoc/RSLT.html +0 -132
  20. data/rdoc/created.rid +0 -6
  21. data/rdoc/images/add.png +0 -0
  22. data/rdoc/images/brick.png +0 -0
  23. data/rdoc/images/brick_link.png +0 -0
  24. data/rdoc/images/bug.png +0 -0
  25. data/rdoc/images/bullet_black.png +0 -0
  26. data/rdoc/images/bullet_toggle_minus.png +0 -0
  27. data/rdoc/images/bullet_toggle_plus.png +0 -0
  28. data/rdoc/images/date.png +0 -0
  29. data/rdoc/images/delete.png +0 -0
  30. data/rdoc/images/find.png +0 -0
  31. data/rdoc/images/loadingAnimation.gif +0 -0
  32. data/rdoc/images/macFFBgHack.png +0 -0
  33. data/rdoc/images/package.png +0 -0
  34. data/rdoc/images/page_green.png +0 -0
  35. data/rdoc/images/page_white_text.png +0 -0
  36. data/rdoc/images/page_white_width.png +0 -0
  37. data/rdoc/images/plugin.png +0 -0
  38. data/rdoc/images/ruby.png +0 -0
  39. data/rdoc/images/tag_blue.png +0 -0
  40. data/rdoc/images/tag_green.png +0 -0
  41. data/rdoc/images/transparent.png +0 -0
  42. data/rdoc/images/wrench.png +0 -0
  43. data/rdoc/images/wrench_orange.png +0 -0
  44. data/rdoc/images/zoom.png +0 -0
  45. data/rdoc/index.html +0 -75
  46. data/rdoc/js/darkfish.js +0 -153
  47. data/rdoc/js/jquery.js +0 -18
  48. data/rdoc/js/navigation.js +0 -142
  49. data/rdoc/js/search.js +0 -94
  50. data/rdoc/js/search_index.js +0 -1
  51. data/rdoc/js/searcher.js +0 -228
  52. data/rdoc/rdoc.css +0 -543
  53. data/rdoc/table_of_contents.html +0 -83
  54. data/script/console +0 -10
  55. data/script/destroy +0 -14
  56. 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
@@ -1,10 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - 1.9.2
5
3
  - 1.9.3
6
- - jruby-18mode # JRuby in 1.8 mode
4
+ - 2.0.0
5
+ - 2.1.0
7
6
  - jruby-19mode # JRuby in 1.9 mode
8
- - rbx-18mode
9
- - rbx-19mode
10
-
7
+ script: bundle exec rake spec
data/Gemfile CHANGED
@@ -1,14 +1,3 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'nokogiri'
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 (3.2.3)
5
- i18n (~> 0.6)
6
- multi_json (~> 1.0)
7
- builder (3.0.0)
8
- columnize (0.3.6)
9
- diff-lcs (1.1.3)
10
- git (1.2.5)
11
- i18n (0.6.0)
12
- jeweler (1.8.3)
13
- bundler (~> 1.0)
14
- git (>= 1.2.5)
15
- rake
16
- rdoc
17
- json (1.6.6)
18
- linecache (0.46)
19
- rbx-require-relative (> 0.0.4)
20
- multi_json (1.2.0)
21
- nokogiri (1.5.2)
22
- rake (0.9.2.2)
23
- rbx-require-relative (0.0.9)
24
- rcov (1.0.0)
25
- rdoc (3.12)
26
- json (~> 1.4)
27
- rspec (2.9.0)
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
- rcov
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
- http://github.com/DanielHeath/rslt
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
- ## DESCRIPTION:
6
+ I've extracted it from an app I built for my work at Lonely Planet.
6
7
 
7
- RSLT is a ruby library that I built because I hate XSLT.
8
+ Use it instead of XSLT if you have any complex transformation rules.
8
9
 
9
- I've extracted it from an app I built for my work at Lonely Planet.
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
- RSLT solves the same problem as XSLT does (that is, how can I transform this xml document into some other format).
12
+ ![Build Status](https://secure.travis-ci.org/DanielHeath/rslt.png "Build Status")
12
13
 
13
- ## FEATURES/PROBLEMS:
14
+ ## FEATURES
14
15
 
15
16
  Nice syntax.
16
17
  Testable, reusable xml transformation
17
- Tested on REE 1.8.7 and MRI 1.9.3
18
+ Supported on MRI 1.9.3 and above, and tested against several others via TravisCI.
18
19
 
19
- ## SYNOPSIS:
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
- s.required_ruby_version = '>= 1.8.7'
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|
@@ -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.each do |child|
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.8'
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.8"
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
- "script/console",
72
- "script/destroy",
73
- "script/generate",
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
- if s.respond_to? :specification_version then
88
- s.specification_version = 3
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
 
@@ -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
- if RUBY_VERSION =~ /^1\.8/
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
- else
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