govspeak 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
1
  require 'kramdown'
2
2
  require 'govspeak/header_extractor'
3
3
  require 'govspeak/html_validator'
4
+ require 'govspeak/html_sanitizer'
4
5
  require 'kramdown/parser/kramdown_with_automatic_external_links'
5
6
  require 'htmlentities'
6
7
 
@@ -0,0 +1,19 @@
1
+ require 'sanitize'
2
+
3
+ class Govspeak::HtmlSanitizer
4
+ def initialize(dirty_html)
5
+ @dirty_html = dirty_html
6
+ end
7
+
8
+ def sanitize
9
+ Sanitize.clean(@dirty_html, sanitize_config)
10
+ end
11
+
12
+ def sanitize_config
13
+ config = Sanitize::Config::RELAXED.dup
14
+ config[:attributes][:all].push("id", "class")
15
+ config[:attributes]["a"].push("rel")
16
+ config[:elements].push("div", "hr")
17
+ config
18
+ end
19
+ end
@@ -1,5 +1,3 @@
1
- require 'sanitize'
2
-
3
1
  class Govspeak::HtmlValidator
4
2
  attr_reader :string
5
3
 
@@ -13,7 +11,7 @@ class Govspeak::HtmlValidator
13
11
 
14
12
  def valid?
15
13
  dirty_html = govspeak_to_html
16
- clean_html = sanitize_html(dirty_html)
14
+ clean_html = Govspeak::HtmlSanitizer.new(dirty_html).sanitize
17
15
  normalise_html(dirty_html) == normalise_html(clean_html)
18
16
  end
19
17
 
@@ -25,16 +23,4 @@ class Govspeak::HtmlValidator
25
23
  def govspeak_to_html
26
24
  Govspeak::Document.new(string).to_html
27
25
  end
28
-
29
- def sanitize_html(dirty_html)
30
- Sanitize.clean(dirty_html, sanitize_config)
31
- end
32
-
33
- def sanitize_config
34
- config = Sanitize::Config::RELAXED.dup
35
- config[:attributes][:all].push("id", "class")
36
- config[:attributes]["a"].push("rel")
37
- config[:elements].push("div", "hr")
38
- config
39
- end
40
26
  end
@@ -1,3 +1,3 @@
1
1
  module Govspeak
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: govspeak
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.1
5
+ version: 1.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ben Griffiths
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2012-09-06 00:00:00 Z
14
+ date: 2012-09-14 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: kramdown
@@ -104,6 +104,7 @@ extra_rdoc_files: []
104
104
 
105
105
  files:
106
106
  - lib/govspeak/version.rb
107
+ - lib/govspeak/html_sanitizer.rb
107
108
  - lib/govspeak/header_extractor.rb
108
109
  - lib/govspeak/html_validator.rb
109
110
  - lib/govspeak.rb
@@ -128,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
129
  requirements:
129
130
  - - ">="
130
131
  - !ruby/object:Gem::Version
131
- hash: -3025037898440193908
132
+ hash: 2687403366774857492
132
133
  segments:
133
134
  - 0
134
135
  version: "0"
@@ -137,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
138
  requirements:
138
139
  - - ">="
139
140
  - !ruby/object:Gem::Version
140
- hash: -3025037898440193908
141
+ hash: 2687403366774857492
141
142
  segments:
142
143
  - 0
143
144
  version: "0"