gr_autolink 1.0.11 → 1.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2707768129fe2d6532822ff1ce6abcd9a72a1fd0
4
+ data.tar.gz: 25700284fffe52ac1ab67ac3a4724f5660acfc17
5
+ SHA512:
6
+ metadata.gz: 300627d7b18d355068ff11a3bb0c179c38d4b8a5e6d84d78b41b7e3797a094f844b4ce91ddc1f26c56e03c509282a82468fb8725d0cf2209fa9770872af94613
7
+ data.tar.gz: badb1913f9bdcfae0f1cb183bd0d85c88d36d5738ecc034d119886569ff0f27d0a18e66804402e3200bf14f84601e4a5f336715bbd8db4bc8c605b42d6056162
@@ -0,0 +1,3 @@
1
+ *~
2
+ pkg
3
+
@@ -1,3 +1,12 @@
1
+ === 1.0.13 / 2014-03-26
2
+
3
+ * fix handling of img tags (again)
4
+
5
+ === 1.0.12 / 2014-03-26
6
+
7
+ * merge changes in from rails_autolink
8
+ * fix handling of single-quotes
9
+
1
10
  === 1.0.11 / 2012-04-17
2
11
 
3
12
  * adding ability to truncate the URL as link text to specified length
data/Gemfile CHANGED
@@ -1,7 +1,4 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
- gem 'rails'
4
- gem 'arel'
5
- gem 'rack'
6
- gem 'hoe'
7
- gem 'minitest'
3
+ # Specify your gem's dependencies in gr_autolink.gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,22 +1,13 @@
1
- # -*- ruby -*-
1
+ #!/usr/bin/env rake
2
+ # -*- coding: utf-8 -*-
3
+ require "bundler/gem_tasks"
2
4
 
3
- require 'rubygems'
4
- require 'hoe'
5
+ require 'rake/testtask'
5
6
 
6
- Hoe.plugins.delete :rubyforge
7
- Hoe.plugin :minitest
8
- Hoe.plugin :gemspec # `gem install hoe-gemspec`
9
- Hoe.plugin :git # `gem install hoe-git`
10
-
11
- Hoe.spec 'gr_autolink' do
12
- developer('Aaron Patterson', 'aaron@tenderlovemaking.com')
13
- developer('Juanjo Bazan', 'jjbazan@gmail.com')
14
- developer('Akira Matsuda', 'ronnie@dio.jp')
15
- developer('Brian Percival', 'bpercival@goodreads.com')
16
- self.readme_file = 'README.rdoc'
17
- self.history_file = 'CHANGELOG.rdoc'
18
- self.extra_rdoc_files = FileList['*.rdoc']
19
- self.extra_deps << ['rails', '~> 3.1']
7
+ Rake::TestTask.new do |t|
8
+ t.libs << 'lib/gr_autolink'
9
+ t.test_files = FileList['test/test*.rb']
10
+ t.verbose = true
20
11
  end
21
12
 
22
- # vim: syntax=ruby
13
+ task :default => :test
@@ -0,0 +1,41 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "gr_autolink/version"
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "gr_autolink"
8
+ s.version = GrAutolink::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ['Aaron Patterson', 'Juanjo Bazan', 'Akira Matsuda', 'Brian Percival', 'Jonathan Schatz']
11
+ s.email = ['aaron@tenderlovemaking.com', 'jjbazan@gmail.com', 'bpercival@goodreads.com', 'jon@divisionbyzero.com']
12
+ s.homepage = "https://github.com/goodreads/gr_autolink"
13
+ s.summary = %{Forked version of rails_autolink with new functionality}
14
+ s.description = <<-EOF
15
+ This is an adaptation of the extraction of the `auto_link` method from rails
16
+ that is the rails_autolink gem. The `auto_link`
17
+ method was removed from Rails in version Rails 3.1. This gem is meant to
18
+ bridge the gap for people migrating...and behaves a little differently from the
19
+ parent gem we forked from:
20
+
21
+ * performs html-escaping of characters such as '&' in strings that are getting
22
+ linkified if the incoming string is not html_safe?
23
+ * retains html-safety of incoming string (if input string is unsafe, will return
24
+ unsafe and vice versa)
25
+ * fixes at least one bug:
26
+ (<img src="http://some.u.rl"> => <img src="<a href="http://some.u.rl">http://some.u.rl</a>">)
27
+ though can't imagine this is intended behavior, also have trouble believing that
28
+ this was an open bug in rails...
29
+ EOF
30
+ s.rubyforge_project = "gr_autolink"
31
+
32
+ s.files = `git ls-files`.split("\n")
33
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
34
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
35
+ s.require_paths = ["lib"]
36
+
37
+ s.add_runtime_dependency "rails", '~> 3.1'
38
+ s.add_development_dependency "arel"
39
+ s.add_development_dependency "rack"
40
+ s.add_development_dependency "minitest"
41
+ end
@@ -1,6 +1,4 @@
1
1
  module GrAutolink
2
- VERSION = '1.0.11'
3
-
4
2
  class Railtie < ::Rails::Railtie
5
3
  initializer 'gr_autolink' do |app|
6
4
  ActiveSupport.on_load(:action_view) do
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module GrAutolink
2
3
  require 'active_support/core_ext/object/blank'
3
4
  require 'active_support/core_ext/array/extract_options'
@@ -13,7 +14,7 @@ module GrAutolink
13
14
  # <tt>:email_addresses</tt>, and <tt>:urls</tt>. If a block is given, each URL and
14
15
  # e-mail address is yielded and the result is used as the link text. By default the
15
16
  # text given is sanitized, you can override this behaviour setting the
16
- # <tt>:sanitize</tt> option to false, or you can add options to the sanitization of
17
+ # <tt>:sanitize</tt> option to false, or you can add options to the sanitization of
17
18
  # the text using the <tt>:sanitize_options</tt> option hash.
18
19
  # An optional flag <tt>:max_link_length</tt> can be passed to let the function truncate
19
20
  # the url text to the specified amount of characters
@@ -82,16 +83,22 @@ module GrAutolink
82
83
  end
83
84
 
84
85
  private
86
+ WORD_PATTERN = RUBY_VERSION < '1.9' ? '\w' : '\p{Word}'
87
+
88
+ PROTOCOLS = %w{ed2k ftp http https irc mailto news gopher nntp telnet
89
+ webcal xmpp callto feed svn urn aim rsync tag ssh sftp
90
+ rtsp afs file z39.50r chrome}.map{|p| Regexp.escape p}.join('|')
85
91
 
86
92
  AUTO_LINK_RE = %r{
87
- (?: ([0-9A-Za-z+.:-]+:)// | www\. | [a-zA-Z0-9.]+[a-zA-Z0-9]\.[a-zA-Z0-9]{2,}\/)
88
- [^\s<>]+
89
- }x
93
+ (?: ((?:view\-source\:)?(?:#{PROTOCOLS}):)// | www\. | [a-zA-Z0-9.]+[a-zA-Z0-9]\.[a-zA-Z0-9]{2,}\/)
94
+ [^\s<>\u00A0]+
95
+ }ix
90
96
 
91
97
  # regexps for determining context, used high-volume
92
98
  AUTO_LINK_CRE = [/<[^>]+$/, /^[^>]*>/, /<a\b.*?>/i, /<\/a>/i]
93
99
 
94
- AUTO_EMAIL_RE = /[\w.!#\$%+-]+@[\w-]+(?:\.[\w-]+)+/
100
+ AUTO_EMAIL_LOCAL_RE = /[\w.!#\$%&'*\/=?^`{|}~+-]/
101
+ AUTO_EMAIL_RE = /[\w.!#\$%+-]\.?#{AUTO_EMAIL_LOCAL_RE}*@[\w-]+(?:\.[\w-]+)+/
95
102
 
96
103
  BRACKETS = { ']' => '[', ')' => '(', '}' => '{' }
97
104
 
@@ -102,13 +109,12 @@ module GrAutolink
102
109
  text.gsub(AUTO_LINK_RE) do
103
110
  scheme, href = $1, $&
104
111
  punctuation = []
105
-
106
112
  if auto_linked?($`, $')
107
113
  # do not change string; URL is already linked
108
114
  href
109
115
  else
110
116
  # don't include trailing punctuation character as part of the URL
111
- while href.sub!(/[^\w\/-]$/, '')
117
+ while href.sub!(/[^#{WORD_PATTERN}\/-]$/, '')
112
118
  punctuation.push $&
113
119
  if opening = BRACKETS[punctuation.last] and href.scan(opening).size > href.scan(punctuation.last).size
114
120
  href << punctuation.pop
@@ -119,9 +125,8 @@ module GrAutolink
119
125
  link_text = if block_given?
120
126
  yield(href)
121
127
  else
122
- text.html_safe? ? href : escape_once(href)
128
+ text.html_safe? ? href : escape(href)
123
129
  end
124
-
125
130
  href = 'http://' + href unless scheme
126
131
 
127
132
  unless options[:sanitize] == false
@@ -130,7 +135,7 @@ module GrAutolink
130
135
  end
131
136
 
132
137
  unless text.html_safe?
133
- href = escape_once(href)
138
+ href = escape(href)
134
139
  end
135
140
 
136
141
  if options[:max_link_length]
@@ -142,6 +147,12 @@ module GrAutolink
142
147
  end
143
148
  end
144
149
 
150
+ def escape(href)
151
+ # escape_once doesn't escape single-quotes but we need to since we're
152
+ # potentially putting content in an attribute tag
153
+ escape_once(href).gsub("'", '&#39;')
154
+ end
155
+
145
156
  # Turns all email addresses into clickable links. If a block is given,
146
157
  # each email is yielded and the result is used as the link text.
147
158
  def auto_link_email_addresses(text, html_options = {}, options = {})
@@ -0,0 +1,3 @@
1
+ module GrAutolink
2
+ VERSION = '1.0.13'
3
+ end
@@ -16,7 +16,7 @@ require 'action_dispatch/testing/assertions'
16
16
  require 'action_view/helpers/text_helper'
17
17
  require 'action_view/helpers/output_safety_helper'
18
18
 
19
- class TestGrAutolink < MiniTest::Unit::TestCase
19
+ class TestGrAutolink < MiniTest::Test
20
20
  include ActionView::Helpers::CaptureHelper
21
21
  include ActionView::Helpers::TextHelper
22
22
  include ActionView::Helpers::SanitizeHelper
@@ -25,12 +25,29 @@ class TestGrAutolink < MiniTest::Unit::TestCase
25
25
  include ActionView::Helpers::OutputSafetyHelper
26
26
  include ActionDispatch::Assertions::DomAssertions
27
27
 
28
+ def assert_dom_equal(expected, actual, message = "")
29
+ expected_dom = HTML::Document.new(expected).root
30
+ actual_dom = HTML::Document.new(actual).root
31
+ assert_equal expected_dom, actual_dom
32
+ end
33
+
34
+ def assert_dom_not_equal(expected, actual, message = "")
35
+ expected_dom = HTML::Document.new(expected).root
36
+ actual_dom = HTML::Document.new(actual).root
37
+ refute_equal expected_dom, actual_dom
38
+ end
39
+
28
40
  def test_auto_link_within_tags
29
41
  link_raw = 'http://www.rubyonrails.org/images/rails.png'
30
42
  link_result = %Q(<img src="#{link_raw}" />)
31
43
  assert_equal link_result, auto_link(link_result)
32
44
  end
33
45
 
46
+ def test_auto_link_with_img_src
47
+ text = 'hello <img src="http://www.google.com/"> kitty'
48
+ assert_equal text, auto_link(text)
49
+ end
50
+
34
51
  def test_auto_link_with_brackets
35
52
  link1_raw = 'http://en.wikipedia.org/wiki/Sprite_(computer_graphics)'
36
53
  link1_result = generate_result(link1_raw)
@@ -87,17 +104,17 @@ class TestGrAutolink < MiniTest::Unit::TestCase
87
104
  assert_equal %{<a href="http://www.rubyonrails.com?id=1&amp;num=2">http://www.rubyonrails.com?id=1&amp;num=2</a>}, auto_link("#{link_raw}#{malicious_script}")
88
105
  assert auto_link("#{link_raw}#{malicious_script}").html_safe?
89
106
  end
90
-
107
+
91
108
  def test_auto_link_should_sanitize_input_with_sanitize_options
92
109
  link_raw = %{http://www.rubyonrails.com?id=1&num=2}
93
110
  malicious_script = '<script>alert("malicious!")</script>'
94
111
  text_with_attributes = %{<a href="http://ruby-lang-org" target="_blank" data-malicious="inject">Ruby</a>}
95
-
112
+
96
113
  text_result = %{<a class="big" href="http://www.rubyonrails.com?id=1&amp;num=2">http://www.rubyonrails.com?id=1&amp;num=2</a><a href="http://ruby-lang-org" target="_blank">Ruby</a>}
97
114
  assert_equal text_result, auto_link("#{link_raw}#{malicious_script}#{text_with_attributes}",
98
115
  :sanitize_options => {:attributes => ["target", "href"]},
99
116
  :html => {:class => 'big'})
100
-
117
+
101
118
  assert auto_link("#{link_raw}#{malicious_script}#{text_with_attributes}",
102
119
  :sanitize_options => {:attributes => ["target", "href"]},
103
120
  :html => {:class => 'big'}).html_safe?
@@ -111,7 +128,7 @@ class TestGrAutolink < MiniTest::Unit::TestCase
111
128
  def test_auto_link_should_not_sanitize_input_when_sanitize_option_is_false
112
129
  link_raw = %{http://www.rubyonrails.com?id=1&num=2}
113
130
  malicious_script = '<script>alert("malicious!")</script>'
114
-
131
+
115
132
  assert_equal %{<a href="http://www.rubyonrails.com?id=1&amp;num=2">http://www.rubyonrails.com?id=1&amp;num=2</a><script>alert("malicious!")</script>}, auto_link("#{link_raw}#{malicious_script}", :sanitize => false)
116
133
  assert !auto_link("#{link_raw}#{malicious_script}", :sanitize => false).html_safe?
117
134
  end
@@ -159,14 +176,14 @@ class TestGrAutolink < MiniTest::Unit::TestCase
159
176
  email_raw = 'santiago@wyeworks.com'
160
177
  link_raw = 'http://www.rubyonrails.org'
161
178
  malicious_script = '<script>alert("malicious!")</script>'
162
-
179
+
163
180
  assert auto_link(nil).html_safe?, 'should be html safe'
164
181
  assert auto_link('').html_safe?, 'should be html safe'
165
182
  assert auto_link("#{link_raw} #{link_raw} #{link_raw}").html_safe?, 'should be html safe'
166
183
  assert auto_link("hello #{email_raw}").html_safe?, 'should be html safe'
167
184
  assert auto_link("hello #{email_raw} #{malicious_script}").html_safe?, 'should be html safe'
168
185
  end
169
-
186
+
170
187
  def test_auto_link_should_not_be_html_safe_when_sanitize_option_false
171
188
  email_raw = 'santiago@wyeworks.com'
172
189
  link_raw = 'http://www.rubyonrails.org'
@@ -176,6 +193,14 @@ class TestGrAutolink < MiniTest::Unit::TestCase
176
193
  assert !auto_link("hello #{email_raw}", :sanitize => false).html_safe?, 'should not be html safe'
177
194
  end
178
195
 
196
+ def test_auto_link_email_addres_with_especial_chars
197
+ email_raw = "and&re$la*+r-a.o'rea=l~ly@tenderlovemaking.com"
198
+ email_sanitized = "and&amp;re$la*+r-a.o&#x27;rea=l~ly@tenderlovemaking.com"
199
+ email_result = %{<a href="mailto:#{email_raw}">#{email_sanitized}</a>}
200
+ assert_equal email_result, auto_link(email_raw)
201
+ assert !auto_link_email_addresses(email_result).html_safe?, 'should not be html safe'
202
+ end
203
+
179
204
  def test_auto_link_email_address
180
205
  email_raw = 'aaron@tenderlovemaking.com'
181
206
  email_result = %{<a href="mailto:#{email_raw}">#{email_raw}</a>}
@@ -207,6 +232,8 @@ class TestGrAutolink < MiniTest::Unit::TestCase
207
232
  email2_raw = '+david@loudthinking.com'
208
233
  email2_result = %{<a href="mailto:#{email2_raw}">#{email2_raw}</a>}
209
234
  assert_equal email2_result, auto_link(email2_raw)
235
+ assert_equal email2_result, auto_link(email2_raw, :all)
236
+ assert_equal email2_result, auto_link(email2_raw, :email_addresses)
210
237
 
211
238
  email3_raw = '+david@loudthinking.com'
212
239
  email3_result = %{<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;+%64%61%76%69%64@%6c%6f%75%64%74%68%69%6e%6b%69%6e%67.%63%6f%6d">#{email3_raw}</a>}
@@ -278,6 +305,14 @@ class TestGrAutolink < MiniTest::Unit::TestCase
278
305
  with_kcode 'u' do
279
306
  assert_equal %(浅草.rbの公式サイトはこちら#{link11_result}), auto_link("浅草.rbの公式サイトはこちら#{link11_raw}")
280
307
  end
308
+
309
+ link12_raw = 'http://tools.ietf.org/html/rfc3986'
310
+ link12_result = generate_result(link12_raw)
311
+ assert_equal %(<p>#{link12_result} text-after-nonbreaking-space</p>), auto_link("<p>#{link12_raw} text-after-nonbreaking-space</p>")
312
+
313
+ link13_raw = 'HTtP://www.rubyonrails.com'
314
+ assert_equal generate_result(link13_raw), auto_link(link13_raw)
315
+
281
316
  end
282
317
 
283
318
  def test_auto_link_parsing
@@ -301,6 +336,7 @@ class TestGrAutolink < MiniTest::Unit::TestCase
301
336
  http://connect.oraclecorp.com/search?search[q]=green+france&search[type]=Group
302
337
  http://of.openfoundry.org/projects/492/download#4th.Release.3
303
338
  http://maps.google.co.uk/maps?f=q&q=the+london+eye&ie=UTF8&ll=51.503373,-0.11939&spn=0.007052,0.012767&z=16&iwloc=A
339
+ http://около.кола/колокола
304
340
  bit.ly/asdf
305
341
  )
306
342
 
@@ -329,7 +365,7 @@ class TestGrAutolink < MiniTest::Unit::TestCase
329
365
  def test_auto_link_retains_non_html_safeness_on_strings_with_urls_to_autolink_sanitize_false
330
366
  assert !auto_link("my link is http://123.abc.org", :sanitize => false).html_safe?
331
367
  end
332
-
368
+
333
369
  def test_auto_link_truncation_option
334
370
  link_text = "http://www.a1234567890.com"
335
371
  input = "my link needs truncation #{link_text} and so forth"
@@ -339,6 +375,19 @@ class TestGrAutolink < MiniTest::Unit::TestCase
339
375
  assert auto_link(input, :max_link_length=>link_text.size+1) == expected_without_truncation
340
376
  end
341
377
 
378
+ def test_auto_link_does_not_timeout_when_parsing_odd_email_input
379
+ inputs = %w(
380
+ foo@...................................
381
+ foo@........................................
382
+ foo@.............................................
383
+ ) << "A" * 100000
384
+ inputs.each do |input|
385
+ Timeout.timeout(0.2) do
386
+ assert_equal input, auto_link(input)
387
+ end
388
+ end
389
+ end
390
+
342
391
  private
343
392
  def generate_result(link_text, href = nil)
344
393
  href ||= link_text
metadata CHANGED
@@ -1,112 +1,134 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gr_autolink
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
5
- prerelease:
4
+ version: 1.0.13
6
5
  platform: ruby
7
6
  authors:
8
7
  - Aaron Patterson
9
8
  - Juanjo Bazan
10
9
  - Akira Matsuda
11
10
  - Brian Percival
11
+ - Jonathan Schatz
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-04-18 00:00:00.000000000 Z
15
+ date: 2014-03-28 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
19
- requirement: &2160991140 !ruby/object:Gem::Requirement
20
- none: false
19
+ requirement: !ruby/object:Gem::Requirement
21
20
  requirements:
22
- - - ~>
21
+ - - "~>"
23
22
  - !ruby/object:Gem::Version
24
23
  version: '3.1'
25
24
  type: :runtime
26
25
  prerelease: false
27
- version_requirements: *2160991140
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '3.1'
28
31
  - !ruby/object:Gem::Dependency
29
- name: rdoc
30
- requirement: &2160990480 !ruby/object:Gem::Requirement
31
- none: false
32
+ name: arel
33
+ requirement: !ruby/object:Gem::Requirement
32
34
  requirements:
33
- - - ~>
35
+ - - ">="
34
36
  - !ruby/object:Gem::Version
35
- version: '3.10'
37
+ version: '0'
36
38
  type: :development
37
39
  prerelease: false
38
- version_requirements: *2160990480
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
39
45
  - !ruby/object:Gem::Dependency
40
- name: hoe
41
- requirement: &2160989780 !ruby/object:Gem::Requirement
42
- none: false
46
+ name: rack
47
+ requirement: !ruby/object:Gem::Requirement
43
48
  requirements:
44
- - - ~>
49
+ - - ">="
45
50
  - !ruby/object:Gem::Version
46
- version: '2.16'
51
+ version: '0'
47
52
  type: :development
48
53
  prerelease: false
49
- version_requirements: *2160989780
50
- description: ! "This is an adaptation of the extraction of the `auto_link` method
51
- from rails\nthat is the rails_autolink gem. The `auto_link`\nmethod was removed
52
- from Rails in version Rails 3.1. This gem is meant to\nbridge the gap for people
53
- migrating...and behaves a little differently from the\nparent gem we forked from:\n\n*
54
- performs html-escaping of characters such as '&' in strings that are getting\n linkified
55
- if the incoming string is not html_safe?\n* retains html-safety of incoming string
56
- (if input string is unsafe, will return\n unsafe and vice versa)\n* fixes at least
57
- one bug:\n (<img src=\"http://some.u.rl\"> => <img src=\"<a href=\"http://some.u.rl\">http://some.u.rl</a>\">)\n
58
- \ though can't imagine this is intended behavior, also have trouble believing that\n
59
- \ this was an open bug in rails..."
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ - !ruby/object:Gem::Dependency
60
+ name: minitest
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ description: |
74
+ This is an adaptation of the extraction of the `auto_link` method from rails
75
+ that is the rails_autolink gem. The `auto_link`
76
+ method was removed from Rails in version Rails 3.1. This gem is meant to
77
+ bridge the gap for people migrating...and behaves a little differently from the
78
+ parent gem we forked from:
79
+
80
+ * performs html-escaping of characters such as '&' in strings that are getting
81
+ linkified if the incoming string is not html_safe?
82
+ * retains html-safety of incoming string (if input string is unsafe, will return
83
+ unsafe and vice versa)
84
+ * fixes at least one bug:
85
+ (<img src="http://some.u.rl"> => <img src="<a href="http://some.u.rl">http://some.u.rl</a>">)
86
+ though can't imagine this is intended behavior, also have trouble believing that
87
+ this was an open bug in rails...
60
88
  email:
61
89
  - aaron@tenderlovemaking.com
62
90
  - jjbazan@gmail.com
63
- - ronnie@dio.jp
64
91
  - bpercival@goodreads.com
92
+ - jon@divisionbyzero.com
65
93
  executables: []
66
94
  extensions: []
67
- extra_rdoc_files:
68
- - CHANGELOG.rdoc
69
- - Manifest.txt
70
- - README.rdoc
71
- - TODO.txt
95
+ extra_rdoc_files: []
72
96
  files:
73
- - .autotest
97
+ - ".autotest"
98
+ - ".gitignore"
74
99
  - CHANGELOG.rdoc
75
100
  - Gemfile
76
101
  - Manifest.txt
77
102
  - README.rdoc
78
103
  - Rakefile
104
+ - TODO.txt
105
+ - gr_autolink.gemspec
79
106
  - lib/gr_autolink.rb
80
107
  - lib/gr_autolink/helpers.rb
108
+ - lib/gr_autolink/version.rb
81
109
  - test/test_gr_autolink.rb
82
- - TODO.txt
83
- - .gemtest
84
- homepage: http://github.com/goodreads/gr_autolink
110
+ homepage: https://github.com/goodreads/gr_autolink
85
111
  licenses: []
112
+ metadata: {}
86
113
  post_install_message:
87
- rdoc_options:
88
- - --main
89
- - README.rdoc
114
+ rdoc_options: []
90
115
  require_paths:
91
116
  - lib
92
117
  required_ruby_version: !ruby/object:Gem::Requirement
93
- none: false
94
118
  requirements:
95
- - - ! '>='
119
+ - - ">="
96
120
  - !ruby/object:Gem::Version
97
121
  version: '0'
98
122
  required_rubygems_version: !ruby/object:Gem::Requirement
99
- none: false
100
123
  requirements:
101
- - - ! '>='
124
+ - - ">="
102
125
  - !ruby/object:Gem::Version
103
126
  version: '0'
104
127
  requirements: []
105
128
  rubyforge_project: gr_autolink
106
- rubygems_version: 1.8.15
129
+ rubygems_version: 2.2.2
107
130
  signing_key:
108
- specification_version: 3
109
- summary: This is an adaptation of the extraction of the `auto_link` method from rails
110
- that is the rails_autolink gem
131
+ specification_version: 4
132
+ summary: Forked version of rails_autolink with new functionality
111
133
  test_files:
112
134
  - test/test_gr_autolink.rb
data/.gemtest DELETED
File without changes