rslt 1.1.8 → 1.1.9

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