auto-linker 0.0.1 → 0.0.2

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: 73d0705bcdf4bd6e6004012b4cf7456b6dc6390e
4
- data.tar.gz: c7ab11f3b86f6c3ee06fe7341e3752bdb88dcefc
3
+ metadata.gz: b588273f3f7ca4a2d62d4b7d914102c1c335c61d
4
+ data.tar.gz: 1c31d044c745d7efde62a2433dfe07f85017b13a
5
5
  SHA512:
6
- metadata.gz: 5d7d860e3e8d7dea5cd0473797b0346f88ee84e4e24eea1d3b5a9c7d18d316f4f5f4d16e043b7b6f40621e1cdad1b2408bc68aae8c31b1b49d54713e6c96b7c8
7
- data.tar.gz: be5c45b7e84b19a9bea0f9f08f0cfa3764daa086b6267718d3166670d77168d266b6ce02e34eeacfcf1200ca2b2bc5afb15e7d4c99f567bd191330cd763c48df
6
+ metadata.gz: 6c2fd0e2364201f31e5b7c1dbd983fc425c3844bb561cb21a8da92c0300a45722fddedc5b1bc2220cd3eda34e89bde8d8cba2c4d7913c307c6375fe8cb303af6
7
+ data.tar.gz: 0a97f0366e81906c1e51b239050ad8cd37f4d43f37d2dc257dcc9163949e97571ad03115559b34b813f8f926e32f911f5254fb2cbc4ac90024ec10cfb07563b1
@@ -1,3 +1,5 @@
1
+ require "rinku"
2
+
1
3
  %w(
2
4
  config/instagram
3
5
  config/twitter
@@ -2,13 +2,13 @@ class Autolinker
2
2
  module Config
3
3
  INSTAGRAM = {
4
4
  :handle_class => "linked-url handle".freeze,
5
- :hashtag_class => "linked-url hashtag".freeze,
6
- :url_class => "linked-url url".freeze,
7
- :email_class => "linked-url email".freeze,
8
-
9
5
  :handle_url_base => "https://instagram.com/".freeze,
6
+
7
+ :hashtag_class => "linked-url hashtag".freeze,
10
8
  :hashtag_url_base => "https://instagram.com/explore/tags/".freeze,
11
9
 
10
+ :url_class => "linked-url url".freeze,
11
+
12
12
  :target => "_blank".freeze
13
13
  }.freeze
14
14
  end
@@ -2,13 +2,13 @@ class Autolinker
2
2
  module Config
3
3
  TWITTER = {
4
4
  :handle_class => "linked-url handle".freeze,
5
- :hashtag_class => "linked-url hashtag".freeze,
6
- :url_class => "linked-url url".freeze,
7
- :email_class => "linked-url email".freeze,
8
-
9
5
  :handle_url_base => "https://twitter.com/".freeze,
6
+
7
+ :hashtag_class => "linked-url hashtag".freeze,
10
8
  :hashtag_url_base => "https://twitter.com/#!/search?q=%23".freeze,
11
9
 
10
+ :url_class => "linked-url url".freeze,
11
+
12
12
  :target => "_blank".freeze
13
13
  }.freeze
14
14
  end
@@ -25,9 +25,8 @@ class Autolinker
25
25
  return '' unless text
26
26
 
27
27
  @text = text
28
- replace_url
28
+ @text = Rinku.auto_link(@text, mode=:all, "class=\"#{@config[:url_class]}\" target=\"#{@config[:target]}\"")
29
29
  replace_handle
30
- replace_email
31
30
  replace_hashtag
32
31
  @text
33
32
  end
@@ -35,21 +34,11 @@ class Autolinker
35
34
  private
36
35
  # Replaces handles with clickable links
37
36
  def replace_handle
38
- @text.gsub!(Regex::HANDLE, '<a href="' << @config[:handle_url_base] << '\1" class="' << @config[:handle_class] << '" target="' << @config[:target] << '">@\1</a>')
39
- end
40
-
41
- # Replaces urls with clickable links
42
- def replace_url
43
- @text.gsub!(Regex::URL, '<a href="http://\1" class="' << @config[:url_class] << '" target="' << @config[:target] << '">\1</a>')
44
- end
45
-
46
- # Replaces emails with clickable links
47
- def replace_email
48
- @text.gsub!(Regex::EMAIL, '<a href="mailto:\1" class="' << @config[:email_class] << '" target="' << @config[:target] << '">\1</a>')
37
+ @text.gsub!(Regex::HANDLE, "<a href=\"#{@config[:handle_url_base]}\\1\" class=\"#{@config[:handle_class]}\" target=\"#{@config[:target]}\">@\\1</a>")
49
38
  end
50
39
 
51
40
  # Replaces hashtags with clickable links
52
41
  def replace_hashtag
53
- @text.gsub!(Regex::HASHTAG, '<a href="' << @config[:hashtag_url_base] << '\1" class="' << @config[:hashtag_class] << '" target="' << @config[:target] << '">#\1</a>')
42
+ @text.gsub!(Regex::HASHTAG, "<a href=\"#{@config[:hashtag_url_base]}\\1\" class=\"#{@config[:hashtag_class]}\" target=\"#{@config[:target]}\">#\\1</a>")
54
43
  end
55
44
  end
@@ -1,11 +1,7 @@
1
1
  class Autolinker
2
2
  module Regex extend self
3
- HANDLE = /(?:\s|^)(?:@)(\w+)/i
3
+ HANDLE = /\B@([\w]+)/i
4
4
 
5
- HASHTAG = /(?:\s|^)(?:#(?!\d+(?:\s|$)))(\w+)(?=\s|$)/i
6
-
7
- URL = /(?:https?:\/\/)?([\da-z\.-]+\.[a-z\.]{2,6}[\/\w \#\.-]*)+\/?/i
8
-
9
- EMAIL = /([a-z0-9_\.-]+@[\da-z\.-]+\.[a-z\.]{2,6})/i
5
+ HASHTAG = /\B#([\w]+)/i
10
6
  end
11
7
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auto-linker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - François Lehoux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-12 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2015-09-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rinku
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.7.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.7.2
13
27
  description: Automatically replace mentions, hashtags, urls and emails with links
14
28
  for multiple services (twitter, instagram, facebook, ...)
15
29
  email: