1
1
require 'addressable/uri'
2
+ require 'cgi'
2
3
require 'memoizable'
3
4
4
5
module Twitter
@@ -11,7 +12,7 @@ class << self
11
12
private
12
13
13
14
def alias_predicate_uri_methods ( method )
14
- %w( _url? _uri_https? _url_https? ) . each do |replacement |
15
+ %w[ _url? _uri_https? _url_https? ] . each do |replacement |
15
16
alias_method_sub ( method , PREDICATE_URI_METHOD_REGEX , replacement )
16
17
end
17
18
end
@@ -26,7 +27,7 @@ def alias_method_sub(method, pattern, replacement)
26
27
# @param size [String, Symbol] The size of the image. Must be one of: 'mobile', 'mobile_retina', 'web', 'web_retina', 'ipad', or 'ipad_retina'
27
28
# @return [Addressable::URI]
28
29
def profile_banner_uri ( size = :web )
29
- parse_encoded_uri ( insecure_uri ( [ @attrs [ :profile_banner_url ] , size ] . join ( '/' ) ) ) unless @attrs [ :profile_banner_url ] . nil?
30
+ parse_uri ( insecure_uri ( [ @attrs [ :profile_banner_url ] , size ] . join ( '/' ) ) ) unless @attrs [ :profile_banner_url ] . nil?
30
31
end
31
32
alias profile_banner_url profile_banner_uri
32
33
@@ -35,7 +36,7 @@ def profile_banner_uri(size = :web)
35
36
# @param size [String, Symbol] The size of the image. Must be one of: 'mobile', 'mobile_retina', 'web', 'web_retina', 'ipad', or 'ipad_retina'
36
37
# @return [Addressable::URI]
37
38
def profile_banner_uri_https ( size = :web )
38
- parse_encoded_uri ( [ @attrs [ :profile_banner_url ] , size ] . join ( '/' ) ) unless @attrs [ :profile_banner_url ] . nil?
39
+ parse_uri ( [ @attrs [ :profile_banner_url ] , size ] . join ( '/' ) ) unless @attrs [ :profile_banner_url ] . nil?
39
40
end
40
41
alias profile_banner_url_https profile_banner_uri_https
41
42
@@ -51,7 +52,7 @@ def profile_banner_uri?
51
52
# @param size [String, Symbol] The size of the image. Must be one of: 'mini', 'normal', 'bigger' or 'original'
52
53
# @return [Addressable::URI]
53
54
def profile_image_uri ( size = :normal )
54
- parse_encoded_uri ( insecure_uri ( profile_image_uri_https ( size ) ) ) unless @attrs [ :profile_image_url_https ] . nil?
55
+ parse_uri ( insecure_uri ( profile_image_uri_https ( size ) ) ) unless @attrs [ :profile_image_url_https ] . nil?
55
56
end
56
57
alias profile_image_url profile_image_uri
57
58
@@ -66,7 +67,7 @@ def profile_image_uri_https(size = :normal)
66
67
# https://a0.twimg.com/profile_images/1759857427/image1326743606.png
67
68
# https://a0.twimg.com/profile_images/1759857427/image1326743606_mini.png
68
69
# https://a0.twimg.com/profile_images/1759857427/image1326743606_bigger.png
69
- parse_encoded_uri ( @attrs [ :profile_image_url_https ] . sub ( PROFILE_IMAGE_SUFFIX_REGEX , profile_image_suffix ( size ) ) ) unless @attrs [ :profile_image_url_https ] . nil?
70
+ parse_uri ( @attrs [ :profile_image_url_https ] . sub ( PROFILE_IMAGE_SUFFIX_REGEX , profile_image_suffix ( size ) ) ) unless @attrs [ :profile_image_url_https ] . nil?
70
71
end
71
72
alias profile_image_url_https profile_image_uri_https
72
73
@@ -79,16 +80,16 @@ def profile_image_uri?
79
80
80
81
private
81
82
82
- def parse_encoded_uri ( uri )
83
- Addressable ::URI . parse ( URI . encode ( uri ) )
83
+ def parse_uri ( uri )
84
+ Addressable ::URI . parse ( uri )
84
85
end
85
86
86
87
def insecure_uri ( uri )
87
88
uri . to_s . sub ( /^https/i , 'http' )
88
89
end
89
90
90
91
def profile_image_suffix ( size )
91
- :original == size . to_sym ? '\\1' : "_#{ size } \\ 1"
92
+ size . to_sym == :original ? '\\1' : "_#{ size } \\ 1"
92
93
end
93
94
end
94
95
end
0 commit comments