html-pipeline 1.8.0 → 1.9.0

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: c80ec3a729612072c5bf7e4042b86062f189a490
4
- data.tar.gz: 1af2da4c0dfb19235124be8ca3caafc940b4ab5a
3
+ metadata.gz: d66ab39f5d7421758fc4599939bdbb364a50b3da
4
+ data.tar.gz: 7f0ff92ba9e248534ce6bf8579d86e1b965f2901
5
5
  SHA512:
6
- metadata.gz: 5ebe5a48f81aa9f84c65ff11404f3239a65d385faac96518cc9b0a11989012e93c988bcf2a7a0577bca82b4dc7a88b17c5bdcfdecb9c67bd07c23239419deafd
7
- data.tar.gz: e901ad26193941fafc158e6041a40d6049b4edc850167740b809581fcc62270d3a82014b8a40be1e30b323fa6ea0b3e573307c009fe7f14d2bf3374dcb930e10
6
+ metadata.gz: 6f26ca78fe3a9549c5023601919593f0f3265bab16865efac85cfe187ec2588f217f1c4e5d92e10fcef4d8417fa64eb20dc256945a7ed7cf1d1931706f790bc1
7
+ data.tar.gz: fbd6e5c3ce3174f467515e8ce8bdb685ef2c56878920d2c600ed7b5bf38a3b6bcfbec2cb62cc07a1e8c6ece21b223f20addccfce65100089d59b8a972d609b06
data/.travis.yml CHANGED
@@ -12,3 +12,8 @@ rvm:
12
12
  - 2.0.0
13
13
  - 2.1.1
14
14
  - ree
15
+
16
+ matrix:
17
+ fast_finish: true
18
+ allow_failures:
19
+ - rvm: ree
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.9.0
4
+
5
+ * Generalize https filter with :base_url #124 #131 rymohr
6
+ * Clean up gemspec dependencies #130 mislav
7
+ * EmojiFilter compatibility with gemoji v2 #129 mislav
8
+ * Now using Minitest #126 simeonwillbanks
9
+
3
10
  ## 1.8.0
4
11
 
5
12
  * Add custom path support for EmojiFilter #122 bradly
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ group :development do
9
9
  end
10
10
 
11
11
  group :test do
12
+ gem "minitest", "~> 5.3"
12
13
  gem "rinku", "~> 1.7", :require => false
13
14
  gem "gemoji", "~> 1.0", :require => false
14
15
  gem "RedCloth", "~> 4.2.9", :require => false
@@ -25,7 +26,12 @@ group :test do
25
26
 
26
27
  if RUBY_VERSION < "1.9.2"
27
28
  gem "sanitize", ">= 2", "< 2.0.4", :require => false
29
+ gem "nokogiri", ">= 1.4", "< 1.6"
28
30
  else
29
31
  gem "sanitize", "~> 2.0", :require => false
30
32
  end
33
+
34
+ if RUBY_VERSION < "1.9.3"
35
+ gem "activesupport", ">= 2", "< 4"
36
+ end
31
37
  end
@@ -15,8 +15,8 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = gem.files.grep(%r{^test})
16
16
  gem.require_paths = ["lib"]
17
17
 
18
- gem.add_dependency "nokogiri", RUBY_VERSION < "1.9.2" ? [">= 1.4", "< 1.6"] : "~> 1.4"
19
- gem.add_dependency "activesupport", RUBY_VERSION < "1.9.3" ? [">= 2", "< 4"] : ">= 2"
18
+ gem.add_dependency "nokogiri", "~> 1.4"
19
+ gem.add_dependency "activesupport", ">= 2"
20
20
 
21
21
  gem.post_install_message = <<msg
22
22
  -------------------------------------------------
@@ -14,9 +14,6 @@ module HTML
14
14
  # :asset_root (required) - base url to link to emoji sprite
15
15
  # :asset_path (optional) - url path to link to emoji sprite. :file_name can be used as a placeholder for the sprite file name. If no asset_path is set "emoji/:file_name" is used.
16
16
  class EmojiFilter < Filter
17
- # Build a regexp that matches all valid :emoji: names.
18
- EmojiPattern = /:(#{Emoji.names.map { |name| Regexp.escape(name) }.join('|')}):/
19
-
20
17
  def call
21
18
  doc.search('text()').each do |node|
22
19
  content = node.to_html
@@ -43,7 +40,7 @@ module HTML
43
40
  def emoji_image_filter(text)
44
41
  return text unless text.include?(':')
45
42
 
46
- text.gsub EmojiPattern do |match|
43
+ text.gsub(emoji_pattern) do |match|
47
44
  name = $1
48
45
  "<img class='emoji' title=':#{name}:' alt=':#{name}:' src='#{emoji_url(name)}' height='20' width='20' align='absmiddle' />"
49
46
  end
@@ -63,9 +60,9 @@ module HTML
63
60
  # Returns the context's asset_path or the default path if no context asset_path is given.
64
61
  def asset_path(name)
65
62
  if context[:asset_path]
66
- context[:asset_path].gsub(":file_name", "#{::CGI.escape(name)}.png")
63
+ context[:asset_path].gsub(":file_name", emoji_filename(name))
67
64
  else
68
- File.join("emoji", "#{::CGI.escape(name)}.png")
65
+ File.join("emoji", emoji_filename(name))
69
66
  end
70
67
  end
71
68
 
@@ -74,6 +71,35 @@ module HTML
74
71
  def emoji_url(name)
75
72
  File.join(asset_root, asset_path(name))
76
73
  end
74
+
75
+ # Build a regexp that matches all valid :emoji: names.
76
+ def self.emoji_pattern
77
+ @emoji_pattern ||= /:(#{emoji_names.map { |name| Regexp.escape(name) }.join('|')}):/
78
+ end
79
+
80
+ def emoji_pattern
81
+ self.class.emoji_pattern
82
+ end
83
+
84
+ # Detect gemoji v2 which has a new API
85
+ # https://github.com/jch/html-pipeline/pull/129
86
+ if Emoji.respond_to?(:all)
87
+ def self.emoji_names
88
+ Emoji.all.map(&:aliases).flatten.sort
89
+ end
90
+
91
+ def emoji_filename(name)
92
+ Emoji.find_by_alias(name).image_filename
93
+ end
94
+ else
95
+ def self.emoji_names
96
+ Emoji.names
97
+ end
98
+
99
+ def emoji_filename(name)
100
+ "#{::CGI.escape(name)}.png"
101
+ end
102
+ end
77
103
  end
78
104
  end
79
105
  end
@@ -1,13 +1,22 @@
1
1
  module HTML
2
2
  class Pipeline
3
- # HTML Filter for replacing http github urls with https versions.
3
+ # HTML Filter for replacing http references to :base_url with https versions.
4
+ # Subdomain references are not rewritten.
5
+ #
6
+ # Context options:
7
+ # :base_url - The url to force https
4
8
  class HttpsFilter < Filter
5
9
  def call
6
- doc.css('a[href^="http://github.com"]').each do |element|
10
+ doc.css(%Q(a[href^="#{context[:base_url]}"])).each do |element|
7
11
  element['href'] = element['href'].sub(/^http:/,'https:')
8
12
  end
9
13
  doc
10
14
  end
15
+
16
+ # Raise error if :base_url undefined
17
+ def validate
18
+ needs :base_url
19
+ end
11
20
  end
12
21
  end
13
- end
22
+ end
@@ -1,5 +1,5 @@
1
1
  module HTML
2
2
  class Pipeline
3
- VERSION = "1.8.0"
3
+ VERSION = "1.9.0"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::AbsoluteSourceFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::AbsoluteSourceFilterTest < Minitest::Test
4
4
  AbsoluteSourceFilter = HTML::Pipeline::AbsoluteSourceFilter
5
5
 
6
6
  def setup
@@ -27,26 +27,26 @@ class HTML::Pipeline::AbsoluteSourceFilterTest < Test::Unit::TestCase
27
27
  def test_does_not_rewrite_absolute_urls
28
28
  orig = %(<p><img src="http://other.example.com/img.png"></p>)
29
29
  result = AbsoluteSourceFilter.call(orig, @options).to_s
30
- assert_no_match /@image_base_url/, result
31
- assert_no_match /@image_subpage_url/, result
30
+ refute_match /@image_base_url/, result
31
+ refute_match /@image_subpage_url/, result
32
32
  end
33
33
 
34
34
  def test_fails_when_context_is_missing
35
- assert_raise RuntimeError do
35
+ assert_raises RuntimeError do
36
36
  AbsoluteSourceFilter.call("<img src=\"img.png\">", {})
37
37
  end
38
- assert_raise RuntimeError do
38
+ assert_raises RuntimeError do
39
39
  AbsoluteSourceFilter.call("<img src=\"/img.png\">", {})
40
40
  end
41
41
  end
42
42
 
43
43
  def test_tells_you_where_context_is_required
44
- exception = assert_raise(RuntimeError) {
44
+ exception = assert_raises(RuntimeError) {
45
45
  AbsoluteSourceFilter.call("<img src=\"img.png\">", {})
46
46
  }
47
47
  assert_match 'HTML::Pipeline::AbsoluteSourceFilter', exception.message
48
48
 
49
- exception = assert_raise(RuntimeError) {
49
+ exception = assert_raises(RuntimeError) {
50
50
  AbsoluteSourceFilter.call("<img src=\"/img.png\">", {})
51
51
  }
52
52
  assert_match 'HTML::Pipeline::AbsoluteSourceFilter', exception.message
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  AutolinkFilter = HTML::Pipeline::AutolinkFilter
4
4
 
5
- class HTML::Pipeline::AutolinkFilterTest < Test::Unit::TestCase
5
+ class HTML::Pipeline::AutolinkFilterTest < Minitest::Test
6
6
  def test_uses_rinku_for_autolinking
7
7
  # just try to parse a complicated piece of HTML
8
8
  # that Rails auto_link cannot handle
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::CamoFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::CamoFilterTest < Minitest::Test
4
4
  CamoFilter = HTML::Pipeline::CamoFilter
5
5
 
6
6
  def setup
@@ -64,13 +64,11 @@ class HTML::Pipeline::CamoFilterTest < Test::Unit::TestCase
64
64
 
65
65
  def test_handling_images_with_no_src_attribute
66
66
  orig = %(<p><img></p>)
67
- assert_nothing_raised do
68
- CamoFilter.call(orig, @options).to_s
69
- end
67
+ assert_equal orig, CamoFilter.call(orig, @options).to_s
70
68
  end
71
69
 
72
70
  def test_required_context_validation
73
- exception = assert_raise(ArgumentError) {
71
+ exception = assert_raises(ArgumentError) {
74
72
  CamoFilter.call("", {})
75
73
  }
76
74
  assert_match /:asset_proxy[^_]/, exception.message
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class HTML::Pipeline::EmojiFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::EmojiFilterTest < Minitest::Test
4
4
  EmojiFilter = HTML::Pipeline::EmojiFilter
5
5
 
6
6
  def test_emojify
@@ -16,7 +16,7 @@ class HTML::Pipeline::EmojiFilterTest < Test::Unit::TestCase
16
16
  end
17
17
 
18
18
  def test_required_context_validation
19
- exception = assert_raise(ArgumentError) {
19
+ exception = assert_raises(ArgumentError) {
20
20
  EmojiFilter.call("", {})
21
21
  }
22
22
  assert_match /:asset_root/, exception.message
@@ -0,0 +1,34 @@
1
+ require "test_helper"
2
+
3
+ HttpsFilter = HTML::Pipeline::HttpsFilter
4
+
5
+ class HTML::Pipeline::AutolinkFilterTest < Minitest::Test
6
+ def filter(html, base_url="http://github.com")
7
+ HttpsFilter.to_html(html, :base_url => base_url)
8
+ end
9
+
10
+ def test_http
11
+ assert_equal %(<a href="https://github.com">github.com</a>),
12
+ filter(%(<a href="http://github.com">github.com</a>))
13
+ end
14
+
15
+ def test_https
16
+ assert_equal %(<a href="https://github.com">github.com</a>),
17
+ filter(%(<a href="https://github.com">github.com</a>))
18
+ end
19
+
20
+ def test_subdomain
21
+ assert_equal %(<a href="http://help.github.com">github.com</a>),
22
+ filter(%(<a href="http://help.github.com">github.com</a>))
23
+ end
24
+
25
+ def test_other
26
+ assert_equal %(<a href="http://github.io">github.io</a>),
27
+ filter(%(<a href="http://github.io">github.io</a>))
28
+ end
29
+
30
+ def test_validation
31
+ exception = assert_raises(ArgumentError) { HttpsFilter.call(nil, {}) }
32
+ assert_match "HTML::Pipeline::HttpsFilter: :base_url", exception.message
33
+ end
34
+ end
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::ImageMaxWidthFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::ImageMaxWidthFilterTest < Minitest::Test
4
4
  def filter(html)
5
5
  HTML::Pipeline::ImageMaxWidthFilter.call(html)
6
6
  end
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  MarkdownFilter = HTML::Pipeline::MarkdownFilter
4
4
 
5
- class HTML::Pipeline::MarkdownFilterTest < Test::Unit::TestCase
5
+ class HTML::Pipeline::MarkdownFilterTest < Minitest::Test
6
6
  def setup
7
7
  @haiku =
8
8
  "Pointing at the moon\n" +
@@ -21,7 +21,7 @@ class HTML::Pipeline::MarkdownFilterTest < Test::Unit::TestCase
21
21
  def test_fails_when_given_a_documentfragment
22
22
  body = "<p>heyo</p>"
23
23
  doc = HTML::Pipeline.parse(body)
24
- assert_raise(TypeError) { MarkdownFilter.call(doc, {}) }
24
+ assert_raises(TypeError) { MarkdownFilter.call(doc, {}) }
25
25
  end
26
26
 
27
27
  def test_gfm_enabled_by_default
@@ -50,7 +50,7 @@ class HTML::Pipeline::MarkdownFilterTest < Test::Unit::TestCase
50
50
  end
51
51
  end
52
52
 
53
- class GFMTest < Test::Unit::TestCase
53
+ class GFMTest < Minitest::Test
54
54
  def gfm(text)
55
55
  MarkdownFilter.call(text, :gfm => true)
56
56
  end
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::MentionFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::MentionFilterTest < Minitest::Test
4
4
  def filter(html, base_url='/', info_url=nil)
5
5
  HTML::Pipeline::MentionFilter.call(html, :base_url => base_url, :info_url => info_url)
6
6
  end
@@ -1,12 +1,12 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::PlainTextInputFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::PlainTextInputFilterTest < Minitest::Test
4
4
  PlainTextInputFilter = HTML::Pipeline::PlainTextInputFilter
5
5
 
6
6
  def test_fails_when_given_a_documentfragment
7
7
  body = "<p>heyo</p>"
8
8
  doc = Nokogiri::HTML::DocumentFragment.parse(body)
9
- assert_raise(TypeError) { PlainTextInputFilter.call(doc, {}) }
9
+ assert_raises(TypeError) { PlainTextInputFilter.call(doc, {}) }
10
10
  end
11
11
 
12
12
  def test_wraps_input_in_a_div_element
@@ -1,32 +1,32 @@
1
1
  require "test_helper"
2
2
 
3
- class HTML::Pipeline::SanitizationFilterTest < Test::Unit::TestCase
3
+ class HTML::Pipeline::SanitizationFilterTest < Minitest::Test
4
4
  SanitizationFilter = HTML::Pipeline::SanitizationFilter
5
5
 
6
6
  def test_removing_script_tags
7
7
  orig = %(<p><img src="http://github.com/img.png" /><script></script></p>)
8
8
  html = SanitizationFilter.call(orig).to_s
9
- assert_no_match /script/, html
9
+ refute_match /script/, html
10
10
  end
11
11
 
12
12
  def test_removing_style_tags
13
13
  orig = %(<p><style>hey now</style></p>)
14
14
  html = SanitizationFilter.call(orig).to_s
15
- assert_no_match /style/, html
15
+ refute_match /style/, html
16
16
  end
17
17
 
18
18
  def test_removing_style_attributes
19
19
  orig = %(<p style='font-size:1000%'>YO DAWG</p>)
20
20
  html = SanitizationFilter.call(orig).to_s
21
- assert_no_match /font-size/, html
22
- assert_no_match /style/, html
21
+ refute_match /font-size/, html
22
+ refute_match /style/, html
23
23
  end
24
24
 
25
25
  def test_removing_script_event_handler_attributes
26
26
  orig = %(<a onclick='javascript:alert(0)'>YO DAWG</a>)
27
27
  html = SanitizationFilter.call(orig).to_s
28
- assert_no_match /javscript/, html
29
- assert_no_match /onclick/, html
28
+ refute_match /javscript/, html
29
+ refute_match /onclick/, html
30
30
  end
31
31
 
32
32
  def test_sanitizes_li_elements_not_contained_in_ul_or_ol
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  SyntaxHighlightFilter = HTML::Pipeline::SyntaxHighlightFilter
4
4
 
5
- class HTML::Pipeline::SyntaxHighlightFilterTest < Test::Unit::TestCase
5
+ class HTML::Pipeline::SyntaxHighlightFilterTest < Minitest::Test
6
6
  def test_highlight_default
7
7
  filter = SyntaxHighlightFilter.new \
8
8
  "<pre>hello</pre>", :highlight => "coffeescript"
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require "test_helper"
3
3
 
4
- class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
4
+ class HTML::Pipeline::TableOfContentsFilterTest < Minitest::Test
5
5
  TocFilter = HTML::Pipeline::TableOfContentsFilter
6
6
 
7
7
  TocPipeline =
@@ -17,30 +17,30 @@ class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
17
17
 
18
18
  def test_anchors_are_added_properly
19
19
  orig = %(<h1>Ice cube</h1><p>Will swarm on any motherfucker in a blue uniform</p>)
20
- assert_includes '<a name=', TocFilter.call(orig).to_s
20
+ assert_includes TocFilter.call(orig).to_s, '<a name='
21
21
  end
22
22
 
23
23
  def test_toc_list_added_properly
24
24
  @orig = %(<h1>Ice cube</h1><p>Will swarm on any motherfucker in a blue uniform</p>)
25
- assert_includes %Q{<ul class="section-nav">\n<li><a href="}, toc
25
+ assert_includes toc, %Q{<ul class="section-nav">\n<li><a href="}
26
26
  end
27
27
 
28
28
  def test_anchors_have_sane_names
29
29
  orig = %(<h1>Dr Dre</h1><h1>Ice Cube</h1><h1>Eazy-E</h1><h1>MC Ren</h1>)
30
30
  result = TocFilter.call(orig).to_s
31
31
 
32
- assert_includes '"dr-dre"', result
33
- assert_includes '"ice-cube"', result
34
- assert_includes '"eazy-e"', result
35
- assert_includes '"mc-ren"', result
32
+ assert_includes result, '"dr-dre"'
33
+ assert_includes result, '"ice-cube"'
34
+ assert_includes result, '"eazy-e"'
35
+ assert_includes result, '"mc-ren"'
36
36
  end
37
37
 
38
38
  def test_toc_hrefs_have_sane_values
39
39
  @orig = %(<h1>Dr Dre</h1><h1>Ice Cube</h1><h1>Eazy-E</h1><h1>MC Ren</h1>)
40
- assert_includes '"#dr-dre"', toc
41
- assert_includes '"#ice-cube"', toc
42
- assert_includes '"#eazy-e"', toc
43
- assert_includes '"#mc-ren"', toc
40
+ assert_includes toc, '"#dr-dre"'
41
+ assert_includes toc, '"#ice-cube"'
42
+ assert_includes toc, '"#eazy-e"'
43
+ assert_includes toc, '"#mc-ren"'
44
44
  end
45
45
 
46
46
  def test_dupe_headers_have_unique_trailing_identifiers
@@ -51,8 +51,8 @@ class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
51
51
 
52
52
  result = TocFilter.call(orig).to_s
53
53
 
54
- assert_includes '"dopeman"', result
55
- assert_includes '"dopeman-1"', result
54
+ assert_includes result, '"dopeman"'
55
+ assert_includes result, '"dopeman-1"'
56
56
  end
57
57
 
58
58
  def test_dupe_headers_have_unique_toc_anchors
@@ -61,8 +61,8 @@ class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
61
61
  <h3>Express Yourself</h3>
62
62
  <h1>Dopeman</h1>)
63
63
 
64
- assert_includes '"#dopeman"', toc
65
- assert_includes '"#dopeman-1"', toc
64
+ assert_includes toc, '"#dopeman"'
65
+ assert_includes toc, '"#dopeman-1"'
66
66
  end
67
67
 
68
68
  def test_all_header_tags_are_found_when_adding_anchors
@@ -1,7 +1,7 @@
1
1
  require "test_helper"
2
2
  require "helpers/mocked_instrumentation_service"
3
3
 
4
- class HTML::PipelineTest < Test::Unit::TestCase
4
+ class HTML::PipelineTest < Minitest::Test
5
5
  Pipeline = HTML::Pipeline
6
6
  class TestFilter
7
7
  def self.call(input, context, result)
data/test/test_helper.rb CHANGED
@@ -1,33 +1,11 @@
1
1
  require 'bundler/setup'
2
2
  require 'html/pipeline'
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
 
5
5
  require 'active_support/core_ext/string'
6
6
  require 'active_support/core_ext/object/try'
7
7
 
8
8
  module TestHelpers
9
- # Asserts that `needle` is not a member of `haystack`, where
10
- # `haystack` is any object that responds to `include?`.
11
- def assert_doesnt_include(needle, haystack, message = nil)
12
- error = '<?> included in <?>'
13
- message = build_message(message, error, needle.to_s, Array(haystack).map(&:to_s))
14
-
15
- assert_block message do
16
- !haystack.include?(needle)
17
- end
18
- end
19
-
20
- # Asserts that `needle` is a member of `haystack`, where
21
- # `haystack` is any object that responds to `include?`.
22
- def assert_includes(needle, haystack, message = nil)
23
- error = '<?> not included in <?>'
24
- message = build_message(message, error, needle.to_s, Array(haystack).map(&:to_s))
25
-
26
- assert_block message do
27
- haystack.include?(needle)
28
- end
29
- end
30
-
31
9
  # Asserts that two html fragments are equivalent. Attribute order
32
10
  # will be ignored.
33
11
  def assert_equal_html(expected, actual)
@@ -36,4 +14,4 @@ module TestHelpers
36
14
  end
37
15
  end
38
16
 
39
- Test::Unit::TestCase.send(:include, TestHelpers)
17
+ Minitest::Test.send(:include, TestHelpers)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html-pipeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Tomayko
@@ -9,34 +9,34 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-04 00:00:00.000000000 Z
12
+ date: 2014-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ~>
19
19
  - !ruby/object:Gem::Version
20
20
  version: '1.4'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.4'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: activesupport
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - '>='
33
33
  - !ruby/object:Gem::Version
34
34
  version: '2'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: '2'
42
42
  description: GitHub HTML processing filters and utilities
@@ -47,8 +47,8 @@ executables: []
47
47
  extensions: []
48
48
  extra_rdoc_files: []
49
49
  files:
50
- - ".gitignore"
51
- - ".travis.yml"
50
+ - .gitignore
51
+ - .travis.yml
52
52
  - CHANGELOG.md
53
53
  - CONTRIBUTING.md
54
54
  - Gemfile
@@ -83,6 +83,7 @@ files:
83
83
  - test/html/pipeline/autolink_filter_test.rb
84
84
  - test/html/pipeline/camo_filter_test.rb
85
85
  - test/html/pipeline/emoji_filter_test.rb
86
+ - test/html/pipeline/https_filter_test.rb
86
87
  - test/html/pipeline/image_max_width_filter_test.rb
87
88
  - test/html/pipeline/markdown_filter_test.rb
88
89
  - test/html/pipeline/mention_filter_test.rb
@@ -108,17 +109,17 @@ require_paths:
108
109
  - lib
109
110
  required_ruby_version: !ruby/object:Gem::Requirement
110
111
  requirements:
111
- - - ">="
112
+ - - '>='
112
113
  - !ruby/object:Gem::Version
113
114
  version: '0'
114
115
  required_rubygems_version: !ruby/object:Gem::Requirement
115
116
  requirements:
116
- - - ">="
117
+ - - '>='
117
118
  - !ruby/object:Gem::Version
118
119
  version: '0'
119
120
  requirements: []
120
121
  rubyforge_project:
121
- rubygems_version: 2.2.2
122
+ rubygems_version: 2.0.14
122
123
  signing_key:
123
124
  specification_version: 4
124
125
  summary: Helpers for processing content through a chain of filters
@@ -128,6 +129,7 @@ test_files:
128
129
  - test/html/pipeline/autolink_filter_test.rb
129
130
  - test/html/pipeline/camo_filter_test.rb
130
131
  - test/html/pipeline/emoji_filter_test.rb
132
+ - test/html/pipeline/https_filter_test.rb
131
133
  - test/html/pipeline/image_max_width_filter_test.rb
132
134
  - test/html/pipeline/markdown_filter_test.rb
133
135
  - test/html/pipeline/mention_filter_test.rb