hexp 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c9c632d0e470fa5f4c296f3eea2ae8069eef7b54
4
- data.tar.gz: 4d22a65fe1a865974c745846bf2e4f350b807a12
3
+ metadata.gz: 82cf0421b04b36a3d4d397510dcd90adc0a181d1
4
+ data.tar.gz: 1f4a2ab57c547894e180ede1c5cb4001b98889cf
5
5
  SHA512:
6
- metadata.gz: fe5cdf5086cb3c3a44b4a3a5b06ffa8787084865af31d607a253b4ecb8373f5611f270c70f780d1ee1f991f20dab4770aec803b423fe78cf0a665121b3df641c
7
- data.tar.gz: bd4927fdc7ab98569707f1ef9966b15ffcb2eed58524212511b9cf62976ada17bc94adda6c86f30fce5c7b2cc8f45d2e1544fdfc27b45970c94ac7e20e9eb5df
6
+ metadata.gz: 5d6668354d47a11855b83d08178c24e98a05759ef063884f5b6576c17d8ce3cfb058fb15b3ffec3663cd210fa742ba64ae1a36d795661c50ba31faebc80e7d49
7
+ data.tar.gz: cba13dcce9246705dd2cfcbe03638f93314a850809b5952c89377b04fbcd53dbea599fe4e0b0c3cfa871808ec1aaa951904e9694542832d7a60c9558a62b3138
data/Changelog.md CHANGED
@@ -1,13 +1,17 @@
1
1
  ### Development
2
2
 
3
- [full diff](http://github.com/plexus/hexp/compare/v0.4.4...master)
3
+ [full diff](http://github.com/plexus/hexp/compare/v0.4.5...master)
4
+
5
+ ### v0.4.5
6
+
7
+ * Bugfix: don't do entity escaping inside :script tags, also not when
8
+ there's more than one text node as a child element
4
9
 
5
10
  ### v0.4.4
6
11
 
7
12
  * Drop the dependency on SASS, use Nokogiri instead for parsing CSS
8
13
  selectors
9
14
 
10
-
11
15
  ### v0.4.3
12
16
 
13
17
  Performance improvements
data/hexp.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
22
22
  gem.add_runtime_dependency 'concord', '~> 0.0'
23
23
 
24
24
  gem.add_development_dependency 'rake'
25
- gem.add_development_dependency 'rspec'
25
+ gem.add_development_dependency 'rspec', '~> 3.1'
26
26
  gem.add_development_dependency 'benchmark_suite'
27
27
  gem.add_development_dependency 'mutant-rspec'
28
28
  gem.add_development_dependency 'rspec-its'
data/lib/hexp/unparser.rb CHANGED
@@ -67,8 +67,8 @@ module Hexp
67
67
  def add_child_nodes(buffer, tag, children)
68
68
  # TODO look into the special parsing mode that browsers use inside <script> tags,
69
69
  # at the least we should throw an error if the text contains </script>
70
- if options[:no_escape].include?(tag) && children.length == 1 && children.first.text?
71
- buffer << children.first
70
+ if options[:no_escape].include?(tag) && children.all?(&:text?)
71
+ children.each {|node| buffer << node }
72
72
  else
73
73
  children.each {|node| add_node(buffer, node) }
74
74
  end
data/lib/hexp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hexp
2
- VERSION = '0.4.4'
2
+ VERSION = '0.4.5'
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -1,22 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
- # SimpleCov MUST be started before require 'hexp'
4
- #
5
- if ENV['COVERAGE'] == 'true'
6
- require 'simplecov'
7
- require 'coveralls'
3
+ require 'hexp'
4
+ require 'rspec/its'
8
5
 
9
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
10
- SimpleCov::Formatter::HTMLFormatter,
11
- Coveralls::SimpleCov::Formatter
12
- ]
13
-
14
- SimpleCov.start do
15
- command_name 'spec:unit'
16
- add_filter 'hexp/h.rb'
17
-
18
- minimum_coverage 98.5
6
+ RSpec::Matchers.define :dom_eq do |other_dom|
7
+ match do |dom|
8
+ Hexp::Nokogiri::Equality.new(dom, other_dom).call
19
9
  end
20
10
  end
21
11
 
22
- require 'shared_helper'
12
+ RSpec.configure do |rspec|
13
+ rspec.mock_with :rspec do |configuration|
14
+ configuration.syntax = :expect
15
+ end
16
+ rspec.around(:each) do |example|
17
+ Timeout.timeout(1, &example)
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Hexp::Unparser do
4
+ let(:unparser) { described_class.new({}) }
5
+ let(:node) { H[:p, %q{Hello "world", it's great meet & chat >.<}] }
6
+ let(:html) { unparser.call(node) }
7
+
8
+ it 'should escape sensitive characters' do
9
+ expect(html).to eql '<p>Hello &quot;world&quot;, it&#x27;s great meet &amp; chat &gt;.&lt;</p>'
10
+ end
11
+
12
+ context 'inside a script tag' do
13
+ let(:node) { H[:script, %q{Hello "world", }, %q{it's great meet & chat >.<}] }
14
+
15
+ it 'should not escape' do
16
+ expect(html).to eql %q{<script>Hello "world", it's great meet & chat >.<</script>}
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arne Brasseur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-15 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '3.1'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '3.1'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: benchmark_suite
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -182,7 +182,6 @@ files:
182
182
  - lib/hexp/unparser.rb
183
183
  - lib/hexp/version.rb
184
184
  - spec/integration/literal_syntax_spec.rb
185
- - spec/shared_helper.rb
186
185
  - spec/spec_helper.rb
187
186
  - spec/unit/hexp/builder_spec.rb
188
187
  - spec/unit/hexp/css_selector/attribute_spec.rb
@@ -214,6 +213,7 @@ files:
214
213
  - spec/unit/hexp/nokogiri/reader_spec.rb
215
214
  - spec/unit/hexp/parse_spec.rb
216
215
  - spec/unit/hexp/text_node_spec.rb
216
+ - spec/unit/hexp/unparser_spec.rb
217
217
  - spec/unit/hexp_spec.rb
218
218
  homepage: https://github.com/plexus/hexp
219
219
  licenses:
@@ -235,13 +235,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
235
  version: '0'
236
236
  requirements: []
237
237
  rubyforge_project:
238
- rubygems_version: 2.4.5
238
+ rubygems_version: 2.2.2
239
239
  signing_key:
240
240
  specification_version: 4
241
241
  summary: Generate and manipulate HTML documents and nodes.
242
242
  test_files:
243
243
  - spec/integration/literal_syntax_spec.rb
244
- - spec/shared_helper.rb
245
244
  - spec/spec_helper.rb
246
245
  - spec/unit/hexp/builder_spec.rb
247
246
  - spec/unit/hexp/css_selector/attribute_spec.rb
@@ -273,4 +272,5 @@ test_files:
273
272
  - spec/unit/hexp/nokogiri/reader_spec.rb
274
273
  - spec/unit/hexp/parse_spec.rb
275
274
  - spec/unit/hexp/text_node_spec.rb
275
+ - spec/unit/hexp/unparser_spec.rb
276
276
  - spec/unit/hexp_spec.rb
@@ -1,17 +0,0 @@
1
- require 'hexp'
2
- require 'rspec/its'
3
-
4
- RSpec::Matchers.define :dom_eq do |other_dom|
5
- match do |dom|
6
- Hexp::Nokogiri::Equality.new(dom, other_dom).call
7
- end
8
- end
9
-
10
- RSpec.configure do |rspec|
11
- rspec.mock_with :rspec do |configuration|
12
- configuration.syntax = :expect
13
- end
14
- rspec.around(:each) do |example|
15
- Timeout.timeout(1, &example)
16
- end
17
- end