gravylicious 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/gravylicious.rb +24 -2
- data/lib/gravylicious.rb~ +24 -4
- metadata +6 -6
data/lib/gravylicious.rb
CHANGED
@@ -1,34 +1,45 @@
|
|
1
|
+
# A ruby library for generating Gravatar urls.
|
2
|
+
# Author:: Utsav Gupta
|
3
|
+
# Copyright:: Copyright (c) 2011 Utsav Gupta
|
4
|
+
# License:: MIT License
|
1
5
|
require 'digest/md5'
|
2
6
|
require 'uri'
|
3
7
|
|
4
8
|
class Gravylicious
|
5
9
|
attr_accessor :email, :params, :param_filters, :use_https
|
6
10
|
|
7
|
-
# A hash to store commonly used filters
|
11
|
+
# A hash to store commonly used filters
|
12
|
+
# like sanitize_url for escaping urls.
|
8
13
|
@@common_filters = {'sanitize_url' => proc{|link| URI.escape(link, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))},
|
9
14
|
}
|
10
15
|
|
16
|
+
# The constructor takes the email address and an optional boolean
|
17
|
+
# parameter which specifies whether or not to use https requests,
|
18
|
+
# by deafault it's set to fasle. It stores the email address in @email
|
19
|
+
# and sets up a collection of default filters in @param_filters.
|
11
20
|
def initialize(email, use_https = false)
|
12
21
|
@email = email.strip
|
13
22
|
@use_https = use_https
|
14
23
|
|
15
24
|
@params = Hash.new
|
16
25
|
|
17
|
-
# Define the default filters
|
18
26
|
@param_filters = {'d' => @@common_filters['sanitize_url'],
|
19
27
|
's' => proc{|s| raise("Invalid avatar size: The requested size is #{s}, valid range 1 to 512") if (s < 1 || s > 512); s},
|
20
28
|
'r' => proc{|r| raise("Invalid avatar rating: Select from g, pg, r and x") unless r =~ /^(p?)g$|^r$|^x$/; r}
|
21
29
|
}
|
22
30
|
end
|
23
31
|
|
32
|
+
# Class function that returns the common_filters hash.
|
24
33
|
def self.common_filters
|
25
34
|
@@common_filters
|
26
35
|
end
|
27
36
|
|
37
|
+
# Returns the MD5 hash of the email address.
|
28
38
|
def email_hash
|
29
39
|
Digest::MD5.hexdigest(@email.downcase)
|
30
40
|
end
|
31
41
|
|
42
|
+
# Returns the link to the desired Gravatar.
|
32
43
|
def avatar_url
|
33
44
|
g_url = "http#{'s' if @use_https}://#{'secure.' if @use_https}gravatar.com/avatar/#{email_hash}"
|
34
45
|
|
@@ -50,36 +61,47 @@ class Gravylicious
|
|
50
61
|
g_url
|
51
62
|
end
|
52
63
|
|
64
|
+
# Used for loading the fallback(default) avatar by defaut.
|
53
65
|
def avatar_force_load
|
54
66
|
@params['f'] = 'y'
|
55
67
|
self
|
56
68
|
end
|
57
69
|
|
70
|
+
# Unsets the force_load options.
|
58
71
|
def avatar_unforce_load
|
59
72
|
@params.delete('f') if @params.has_key?('f')
|
60
73
|
self
|
61
74
|
end
|
62
75
|
|
76
|
+
# Returns the avatar rating.
|
63
77
|
def avatar_rating
|
64
78
|
@params['r']
|
65
79
|
end
|
66
80
|
|
81
|
+
# Returns the link to the default avatar.
|
67
82
|
def avatar_default
|
68
83
|
@params['d']
|
69
84
|
end
|
70
85
|
|
86
|
+
# Returns the size of the avatar.
|
71
87
|
def avatar_size
|
72
88
|
@params['s']
|
73
89
|
end
|
74
90
|
|
91
|
+
# Sets the rating of the avatar.
|
92
|
+
# Example gravatar.avatar_rating = 'pg' # Choose from g, pg, r and x.
|
75
93
|
def avatar_rating=(r)
|
76
94
|
@params['r'] = r
|
77
95
|
end
|
78
96
|
|
97
|
+
# Sets the default avatar.
|
98
|
+
# Example gravatar.avatar_default = "http://example.com/yourpic.jpg"
|
79
99
|
def avatar_default=(d)
|
80
100
|
@params['d'] = d
|
81
101
|
end
|
82
102
|
|
103
|
+
# Sets the size of the avatar in px.
|
104
|
+
# Example gravatar.avatar_size = 128 # Should not exceed 512
|
83
105
|
def avatar_size=(s)
|
84
106
|
@params['s'] = s
|
85
107
|
end
|
data/lib/gravylicious.rb~
CHANGED
@@ -1,36 +1,45 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# A ruby library for generating Gravatar urls.
|
2
|
+
# Author:: Utsav Gupta
|
3
|
+
# Copyright:: Copyright (c) 2011 Utsav Gupta
|
4
|
+
# License:: MIT License
|
3
5
|
require 'digest/md5'
|
4
6
|
require 'uri'
|
5
7
|
|
6
8
|
class Gravylicious
|
7
9
|
attr_accessor :email, :params, :param_filters, :use_https
|
8
10
|
|
9
|
-
# A hash to store commonly used filters
|
11
|
+
# A hash to store commonly used filters
|
12
|
+
# like sanitize_url for escaping urls.
|
10
13
|
@@common_filters = {'sanitize_url' => proc{|link| URI.escape(link, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))},
|
11
14
|
}
|
12
15
|
|
16
|
+
# The constructor takes the email address and an optional boolean
|
17
|
+
# parameter which specifies whether or not to use https requests,
|
18
|
+
# by deafault it's set to fasle. It stores the email address in @email
|
19
|
+
# and sets up a collection of default filters in @param_filters.
|
13
20
|
def initialize(email, use_https = false)
|
14
21
|
@email = email.strip
|
15
22
|
@use_https = use_https
|
16
23
|
|
17
24
|
@params = Hash.new
|
18
25
|
|
19
|
-
# Define the default filters
|
20
26
|
@param_filters = {'d' => @@common_filters['sanitize_url'],
|
21
27
|
's' => proc{|s| raise("Invalid avatar size: The requested size is #{s}, valid range 1 to 512") if (s < 1 || s > 512); s},
|
22
28
|
'r' => proc{|r| raise("Invalid avatar rating: Select from g, pg, r and x") unless r =~ /^(p?)g$|^r$|^x$/; r}
|
23
29
|
}
|
24
30
|
end
|
25
31
|
|
32
|
+
# Class function that returns the common_filters hash.
|
26
33
|
def self.common_filters
|
27
34
|
@@common_filters
|
28
35
|
end
|
29
36
|
|
37
|
+
# Returns the MD5 hash of the email address.
|
30
38
|
def email_hash
|
31
39
|
Digest::MD5.hexdigest(@email.downcase)
|
32
40
|
end
|
33
41
|
|
42
|
+
# Returns the link to the desired Gravatar.
|
34
43
|
def avatar_url
|
35
44
|
g_url = "http#{'s' if @use_https}://#{'secure.' if @use_https}gravatar.com/avatar/#{email_hash}"
|
36
45
|
|
@@ -52,36 +61,47 @@ class Gravylicious
|
|
52
61
|
g_url
|
53
62
|
end
|
54
63
|
|
64
|
+
# Used for loading the fallback(default) avatar by defaut.
|
55
65
|
def avatar_force_load
|
56
66
|
@params['f'] = 'y'
|
57
67
|
self
|
58
68
|
end
|
59
69
|
|
70
|
+
# Unsets the force_load options.
|
60
71
|
def avatar_unforce_load
|
61
72
|
@params.delete('f') if @params.has_key?('f')
|
62
73
|
self
|
63
74
|
end
|
64
75
|
|
76
|
+
# Returns the avatar rating.
|
65
77
|
def avatar_rating
|
66
78
|
@params['r']
|
67
79
|
end
|
68
80
|
|
81
|
+
# Returns the link to the default avatar.
|
69
82
|
def avatar_default
|
70
83
|
@params['d']
|
71
84
|
end
|
72
85
|
|
86
|
+
# Returns the size of the avatar.
|
73
87
|
def avatar_size
|
74
88
|
@params['s']
|
75
89
|
end
|
76
90
|
|
91
|
+
# Sets the rating of the avatar.
|
92
|
+
# Example gravatar.avatar_rating = 'pg' # Choose from g, pg, r and x.
|
77
93
|
def avatar_rating=(r)
|
78
94
|
@params['r'] = r
|
79
95
|
end
|
80
96
|
|
97
|
+
# Sets the default avatar.
|
98
|
+
# Example gravatar.avatar_default = "http://example.com/yourpic.jpg"
|
81
99
|
def avatar_default=(d)
|
82
100
|
@params['d'] = d
|
83
101
|
end
|
84
102
|
|
103
|
+
# Sets the size of the avatar in px.
|
104
|
+
# Example gravatar.avatar_size = 128 # Should not exceed 512
|
85
105
|
def avatar_size=(s)
|
86
106
|
@params['s'] = s
|
87
107
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gravylicious
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 2
|
10
|
+
version: 1.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Utsav Gupta
|
@@ -15,7 +15,7 @@ autorequire: gravylicious
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-19 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description:
|
@@ -30,7 +30,7 @@ files:
|
|
30
30
|
- lib/gravylicious.rb
|
31
31
|
- lib/gravylicious.rb~
|
32
32
|
- tests/tc_gravylicious.rb
|
33
|
-
homepage: https://github.com/utsavgupta
|
33
|
+
homepage: https://github.com/utsavgupta/gravylicious
|
34
34
|
licenses: []
|
35
35
|
|
36
36
|
post_install_message:
|
@@ -65,4 +65,4 @@ specification_version: 3
|
|
65
65
|
summary: A library for generating Gravatar urls.
|
66
66
|
test_files:
|
67
67
|
- tests/tc_gravylicious.rb
|
68
|
-
has_rdoc:
|
68
|
+
has_rdoc: true
|