gravatar_image_tag 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +19 -8
- data/lib/gravatar_image_tag.rb +33 -15
- data/spec/gravatar_image_tag_spec.rb +113 -74
- data/spec/test_helper.rb +2 -0
- metadata +67 -21
data/README.textile
CHANGED
@@ -34,23 +34,36 @@ h2. Install as a Ruby on Rails Plugin
|
|
34
34
|
|
35
35
|
h2. Usage
|
36
36
|
|
37
|
-
|
37
|
+
h3. Gravatar Image Tag
|
38
|
+
|
39
|
+
p. Once you have installed it as a plugin for your rails app usage is simple.
|
38
40
|
|
39
41
|
<pre>gravatar_image_tag('spam@spam.com'.gsub('spam', 'mdeering'), :alt => 'Michael Deering')</pre>
|
40
42
|
|
41
43
|
*Boom* here is my gravatar !http://www.gravatar.com/avatar/4da9ad2bd4a2d1ce3c428e32c423588a(Michael Deering)!
|
42
44
|
|
45
|
+
h3. Gravatar Image URL
|
46
|
+
|
47
|
+
p. You can also return just the Gravatar URL:
|
48
|
+
|
49
|
+
<pre>gravatar_image_url('spam@spam.com'.gsub('spam', 'mdeering'), filetype: :png, rating: 'pg', size: 15, secure:false )</pre>
|
50
|
+
|
51
|
+
p. Useful when used in your inline CSS.
|
52
|
+
|
53
|
+
<pre><div class="gravatar" style="background:transparent url(<%= gravatar_image_url('spam@spam.com'.gsub('spam', 'mdeering'), size: 100) %>) 0px 0px no-repeat; width:100px; height:100px;"></div></pre>
|
54
|
+
|
43
55
|
h2. Configuration
|
44
56
|
|
45
57
|
h3. Global configuration points
|
46
58
|
|
47
59
|
<pre># config/initializers/gravatar_image_tag.rb
|
48
60
|
GravatarImageTag.configure do |config|
|
49
|
-
config.default_image
|
50
|
-
config.filetype
|
51
|
-
config.
|
52
|
-
config.
|
53
|
-
config.
|
61
|
+
config.default_image = nil # Set this to use your own default gravatar image rather then serving up Gravatar's default image [ 'http://example.com/images/default_gravitar.jpg', :identicon, :monsterid, :wavatar, 404 ].
|
62
|
+
config.filetype = nil # Set this if you require a specific image file format ['gif', 'jpg' or 'png']. Gravatar's default is png
|
63
|
+
config.include_size_attributes = true # The height and width attributes of the generated img will be set to avoid page jitter as the gravatars load. Set to false to leave these attributes off.
|
64
|
+
config.rating = nil # Set this if you change the rating of the images that will be returned ['G', 'PG', 'R', 'X']. Gravatar's default is G
|
65
|
+
config.size = nil # Set this to globally set the size of the gravatar image returned (1..512). Gravatar's default is 80
|
66
|
+
config.secure = false # Set this to true if you require secure images on your pages.
|
54
67
|
end
|
55
68
|
</pre>
|
56
69
|
|
@@ -93,14 +106,12 @@ p. You can set the gravatar rating inline as follows:
|
|
93
106
|
|
94
107
|
<pre>gravatar_image_tag('spam@spam.com'.gsub('spam', 'mdeering'), :alt => 'Michael Deering', :gravatar => { :rating => 'pg' } )</pre>
|
95
108
|
|
96
|
-
|
97
109
|
h3. Specifying a filetype
|
98
110
|
|
99
111
|
p. You can set the gravatar filetype inline as follows:
|
100
112
|
|
101
113
|
<pre>gravatar_image_tag('spam@spam.com'.gsub('spam', 'mdeering'), :alt => 'Michael Deering', :gravatar => { :filetype => :gif } )</pre>
|
102
114
|
|
103
|
-
|
104
115
|
h2. Credits
|
105
116
|
|
106
117
|
The ideas and methods for this plugin are from expanding upon my original blog post "Adding Gravatar To Your Website Or Blog (Gravatar Rails)":http://mdeering.com/posts/005-adding-gravitar-to-your-website-or-blog
|
data/lib/gravatar_image_tag.rb
CHANGED
@@ -13,12 +13,12 @@ module GravatarImageTag
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class Configuration
|
16
|
-
attr_accessor :default_image, :filetype, :include_size_attributes,
|
16
|
+
attr_accessor :default_image, :filetype, :include_size_attributes,
|
17
|
+
:rating, :size, :secure
|
17
18
|
|
18
19
|
def initialize
|
19
20
|
@include_size_attributes = true
|
20
21
|
end
|
21
|
-
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.included(base)
|
@@ -61,32 +61,43 @@ module GravatarImageTag
|
|
61
61
|
end
|
62
62
|
|
63
63
|
module InstanceMethods
|
64
|
-
|
65
64
|
def gravatar_image_tag(email, options = {})
|
66
65
|
gravatar_overrides = options.delete(:gravatar)
|
67
|
-
|
68
|
-
options[:src] = GravatarImageTag::gravatar_url(email, gravatar_overrides)
|
66
|
+
options[:src] = gravatar_image_url(email, gravatar_overrides)
|
69
67
|
options[:alt] ||= 'Gravatar'
|
70
|
-
|
71
|
-
|
68
|
+
if GravatarImageTag.configuration.include_size_attributes
|
69
|
+
size = GravatarImageTag::gravatar_options(gravatar_overrides)[:size] || 80
|
70
|
+
options[:height] = options[:width] = size.to_s
|
71
|
+
end
|
72
|
+
|
73
|
+
# Patch submitted to rails to allow image_tag here
|
74
|
+
# https://rails.lighthouseapp.com/projects/8994/tickets/2878
|
75
|
+
tag 'img', options, false, false
|
72
76
|
end
|
73
77
|
|
78
|
+
def gravatar_image_url(email, gravatar_overrides = {})
|
79
|
+
email = email.strip.downcase if email.is_a? String
|
80
|
+
GravatarImageTag::gravatar_url(email, gravatar_overrides)
|
81
|
+
end
|
74
82
|
end
|
75
83
|
|
76
84
|
def self.gravatar_url(email, overrides = {})
|
77
85
|
gravatar_params = gravatar_options(overrides || {})
|
78
|
-
|
86
|
+
url_params = url_params(gravatar_params)
|
87
|
+
url_base = gravatar_url_base(gravatar_params.delete(:secure))
|
88
|
+
hash = gravatar_id(email, gravatar_params.delete(:filetype))
|
89
|
+
"#{url_base}/#{hash}#{url_params}"
|
79
90
|
end
|
80
91
|
|
81
92
|
private
|
82
93
|
|
83
94
|
def self.gravatar_options(overrides = {})
|
84
95
|
{
|
85
|
-
:default
|
86
|
-
:filetype
|
87
|
-
:rating
|
88
|
-
:secure
|
89
|
-
:size
|
96
|
+
:default => GravatarImageTag.configuration.default_image,
|
97
|
+
:filetype => GravatarImageTag.configuration.filetype,
|
98
|
+
:rating => GravatarImageTag.configuration.rating,
|
99
|
+
:secure => GravatarImageTag.configuration.secure,
|
100
|
+
:size => GravatarImageTag.configuration.size
|
90
101
|
}.merge(overrides || {}).delete_if { |key, value| value.nil? }
|
91
102
|
end
|
92
103
|
|
@@ -95,12 +106,19 @@ module GravatarImageTag
|
|
95
106
|
end
|
96
107
|
|
97
108
|
def self.gravatar_id(email, filetype = nil)
|
98
|
-
|
109
|
+
return nil unless email
|
110
|
+
"#{ Digest::MD5.hexdigest(email) }#{ ".#{filetype}" unless filetype.nil? }"
|
99
111
|
end
|
100
112
|
|
101
113
|
def self.url_params(gravatar_params)
|
102
114
|
return nil if gravatar_params.keys.size == 0
|
103
|
-
|
115
|
+
array = gravatar_params.map { |k, v| "#{k}=#{value_cleaner(v)}" }
|
116
|
+
"?#{array.join('&')}"
|
117
|
+
end
|
118
|
+
|
119
|
+
def self.value_cleaner(value)
|
120
|
+
value = value.to_s
|
121
|
+
URI.escape(value, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
104
122
|
end
|
105
123
|
|
106
124
|
end
|
@@ -19,93 +19,132 @@ describe GravatarImageTag do
|
|
19
19
|
|
20
20
|
view = ActionView::Base.new
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
context '#gravatar_image_tag' do
|
23
|
+
|
24
|
+
{
|
25
|
+
{ gravatar_id: md5 } => {},
|
26
|
+
{ gravatar_id: md5 } => { gravatar: { rating: 'x' } },
|
27
|
+
{ gravatar_id: md5, size: 30 } => { gravatar: { size: 30 } },
|
28
|
+
{ gravatar_id: md5, default: other_image_escaped } => { gravatar: { default: other_image } },
|
29
|
+
{ gravatar_id: md5, default: other_image_escaped, size: 30 } => { gravatar: { default: other_image, size: 30 } }
|
30
|
+
}.each do |params, options|
|
31
|
+
it "#gravatar_image_tag should create the provided url with the provided options #{options}" do
|
32
|
+
view = ActionView::Base.new
|
33
|
+
image_tag = view.gravatar_image_tag(email, options)
|
34
|
+
image_tag.include?("#{params.delete(:gravatar_id)}").should be_true
|
35
|
+
params.all? {|key, value| image_tag.include?("#{key}=#{value}")}.should be_true
|
36
|
+
end
|
34
37
|
end
|
35
|
-
end
|
36
38
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
39
|
+
{
|
40
|
+
default_gravatar_image: default_image,
|
41
|
+
default_gravatar_filetype: default_filetype,
|
42
|
+
default_gravatar_rating: default_rating,
|
43
|
+
default_gravatar_size: default_size,
|
44
|
+
secure_gravatar: secure
|
45
|
+
}.each do |singleton_variable, value|
|
46
|
+
it "should give a deprication warning for assigning to #{singleton_variable} and passthrough to set the new variable" do
|
47
|
+
ActionView::Base.should_receive(:warn)
|
48
|
+
ActionView::Base.send("#{singleton_variable}=", value)
|
49
|
+
GravatarImageTag.configuration.default_image == value if singleton_variable == :default_gravatar_image
|
50
|
+
GravatarImageTag.configuration.filetype == value if singleton_variable == :default_gravatar_filetype
|
51
|
+
GravatarImageTag.configuration.rating == value if singleton_variable == :default_gravatar_rating
|
52
|
+
GravatarImageTag.configuration.size == value if singleton_variable == :default_gravatar_size
|
53
|
+
GravatarImageTag.configuration.secure == value if singleton_variable == :secure_gravatar
|
54
|
+
end
|
52
55
|
end
|
53
|
-
end
|
54
56
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
57
|
+
# Now that the defaults are set...
|
58
|
+
{
|
59
|
+
{ gravatar_id: md5, size: default_size, default: default_image_escaped } => {},
|
60
|
+
{ gravatar_id: md5, size: 30, default: default_image_escaped } => { gravatar: { size: 30 } },
|
61
|
+
{ gravatar_id: md5, size: default_size, default: other_image_escaped } => { gravatar: { default: other_image } },
|
62
|
+
{ gravatar_id: md5, size: 30, default: other_image_escaped } => { gravatar: { default: other_image, size: 30 } },
|
63
|
+
}.each do |params, options|
|
64
|
+
it "#gravatar_image_tag #{params} should create the provided url when defaults have been set with the provided options #{options}" do
|
65
|
+
view = ActionView::Base.new
|
66
|
+
image_tag = view.gravatar_image_tag(email, options)
|
67
|
+
image_tag.include?("#{params.delete(:gravatar_id)}.#{default_filetype}").should be_true
|
68
|
+
params.all? {|key, value| image_tag.include?("#{key}=#{value}")}.should be_true
|
69
|
+
end
|
67
70
|
end
|
68
|
-
end
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
it 'should request the gravatar image from the secure server if the https => true option is given' do
|
75
|
-
(!!view.gravatar_image_tag(email, { :gravatar => { :secure => true } }).match(/src="https:\/\/secure.gravatar.com\/avatar\//)).should be_true
|
76
|
-
end
|
72
|
+
it 'should request the gravatar image from the non-secure server when the https: false option is given' do
|
73
|
+
(!!view.gravatar_image_tag(email, { gravatar: { secure: false } }).match(/^https:\/\/secure.gravatar.com\/avatar\//)).should be_false
|
74
|
+
end
|
77
75
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
(!!view.gravatar_image_tag(email).match(/width="30"/)).should be_true
|
82
|
-
end
|
76
|
+
it 'should request the gravatar image from the secure server when the https: true option is given' do
|
77
|
+
(!!view.gravatar_image_tag(email, { gravatar: { secure: true } }).match(/src="https:\/\/secure.gravatar.com\/avatar\//)).should be_true
|
78
|
+
end
|
83
79
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
80
|
+
it 'should set the image tags height and width to avoid the page going all jiggy (technical term) when loading a page with lots of Gravatars' do
|
81
|
+
GravatarImageTag.configure { |c| c.size = 30 }
|
82
|
+
(!!view.gravatar_image_tag(email).match(/height="30"/)).should be_true
|
83
|
+
(!!view.gravatar_image_tag(email).match(/width="30"/)).should be_true
|
84
|
+
end
|
89
85
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
86
|
+
it 'should set the image tags height and width attributes to 80px (gravatars default) if no size is given.' do
|
87
|
+
GravatarImageTag.configure { |c| c.size = nil }
|
88
|
+
(!!view.gravatar_image_tag(email).match(/height="80"/)).should be_true
|
89
|
+
(!!view.gravatar_image_tag(email).match(/width="80"/)).should be_true
|
90
|
+
end
|
95
91
|
|
92
|
+
it 'should set the image tags height and width attributes from the overrides on the size' do
|
93
|
+
GravatarImageTag.configure { |c| c.size = 120 }
|
94
|
+
(!!view.gravatar_image_tag(email, gravatar: { size: 45 }).match(/height="45"/)).should be_true
|
95
|
+
(!!view.gravatar_image_tag(email, gravatar: { size: 75 }).match(/width="75"/)).should be_true
|
96
|
+
end
|
96
97
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
98
|
+
it 'should not include the height and width attributes on the image tag if it is turned off in the configuration' do
|
99
|
+
GravatarImageTag.configure { |c| c.include_size_attributes = false }
|
100
|
+
(!!view.gravatar_image_tag(email).match(/height=/)).should be_false
|
101
|
+
(!!view.gravatar_image_tag(email).match(/width=/)).should be_false
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'GravatarImageTag#gravitar_id should not error out when email is nil' do
|
105
|
+
lambda { GravatarImageTag::gravatar_id(nil) }.should_not raise_error
|
106
|
+
end
|
102
107
|
|
103
|
-
|
104
|
-
|
108
|
+
it 'should normalize the email to Gravatar standards (http://en.gravatar.com/site/implement/hash/)' do
|
109
|
+
view.gravatar_image_tag(" camelCaseEmail@example.com\t\n").should == view.gravatar_image_tag('camelcaseemail@example.com')
|
110
|
+
end
|
111
|
+
|
105
112
|
end
|
106
|
-
|
107
|
-
|
108
|
-
|
113
|
+
|
114
|
+
context '#gravatar_image_url' do
|
115
|
+
|
116
|
+
it '#gravatar_image_url should return a gravatar URL' do
|
117
|
+
(!!view.gravatar_image_url(email).match(/^http:\/\/gravatar.com\/avatar\//)).should be_true
|
118
|
+
end
|
119
|
+
|
120
|
+
it '#gravatar_image_url should set the email as an md5 digest' do
|
121
|
+
(!!view.gravatar_image_url(email).match("http:\/\/gravatar.com\/avatar\/#{md5}")).should be_true
|
122
|
+
end
|
123
|
+
|
124
|
+
it '#gravatar_image_url should set the default_image' do
|
125
|
+
(!!view.gravatar_image_url(email).include?("default=#{default_image_escaped}")).should be_true
|
126
|
+
end
|
127
|
+
|
128
|
+
it '#gravatar_image_url should set the filetype' do
|
129
|
+
(!!view.gravatar_image_url(email, filetype: :png).match("http:\/\/gravatar.com\/avatar\/#{md5}.png")).should be_true
|
130
|
+
end
|
131
|
+
|
132
|
+
it '#gravatar_image_url should set the rating' do
|
133
|
+
(!!view.gravatar_image_url(email, rating: 'pg').include?("rating=pg")).should be_true
|
134
|
+
end
|
135
|
+
|
136
|
+
it '#gravatar_image_url should set the size' do
|
137
|
+
(!!view.gravatar_image_url(email, size: 100).match(/size=100/)).should be_true
|
138
|
+
end
|
139
|
+
|
140
|
+
it '#gravatar_image_url should use http protocol when the https: false option is given' do
|
141
|
+
(!!view.gravatar_image_url(email, secure: false).match("^http:\/\/gravatar.com\/avatar\/")).should be_true
|
142
|
+
end
|
143
|
+
|
144
|
+
it '#gravatar_image_url should use https protocol when the https: true option is given' do
|
145
|
+
(!!view.gravatar_image_url(email, secure: true).match("^https:\/\/secure.gravatar.com\/avatar\/")).should be_true
|
146
|
+
end
|
147
|
+
|
109
148
|
end
|
110
149
|
|
111
150
|
end
|
data/spec/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gravatar_image_tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,43 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.2.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.2.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: actionpack
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.2.0
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.2.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
28
49
|
none: false
|
29
50
|
requirements:
|
30
51
|
- - ! '>='
|
@@ -32,10 +53,15 @@ dependencies:
|
|
32
53
|
version: '0'
|
33
54
|
type: :development
|
34
55
|
prerelease: false
|
35
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
36
62
|
- !ruby/object:Gem::Dependency
|
37
63
|
name: guard
|
38
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
39
65
|
none: false
|
40
66
|
requirements:
|
41
67
|
- - ! '>='
|
@@ -43,10 +69,15 @@ dependencies:
|
|
43
69
|
version: '0'
|
44
70
|
type: :development
|
45
71
|
prerelease: false
|
46
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
47
78
|
- !ruby/object:Gem::Dependency
|
48
79
|
name: guard-rspec
|
49
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
50
81
|
none: false
|
51
82
|
requirements:
|
52
83
|
- - ! '>='
|
@@ -54,21 +85,31 @@ dependencies:
|
|
54
85
|
version: '0'
|
55
86
|
type: :development
|
56
87
|
prerelease: false
|
57
|
-
version_requirements:
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: jeweler
|
60
|
-
requirement: &70128934992100 !ruby/object:Gem::Requirement
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
89
|
none: false
|
62
90
|
requirements:
|
63
91
|
- - ! '>='
|
64
92
|
- !ruby/object:Gem::Version
|
65
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rb-fsevent
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.9'
|
66
102
|
type: :development
|
67
103
|
prerelease: false
|
68
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.9'
|
69
110
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement:
|
111
|
+
name: jeweler
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
72
113
|
none: false
|
73
114
|
requirements:
|
74
115
|
- - ! '>='
|
@@ -76,7 +117,12 @@ dependencies:
|
|
76
117
|
version: '0'
|
77
118
|
type: :development
|
78
119
|
prerelease: false
|
79
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
80
126
|
description:
|
81
127
|
email: mdeering@mdeering.com
|
82
128
|
executables: []
|
@@ -104,7 +150,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
150
|
version: '0'
|
105
151
|
segments:
|
106
152
|
- 0
|
107
|
-
hash: -
|
153
|
+
hash: -4026127506074933261
|
108
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
155
|
none: false
|
110
156
|
requirements:
|
@@ -113,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
159
|
version: '0'
|
114
160
|
requirements: []
|
115
161
|
rubyforge_project:
|
116
|
-
rubygems_version: 1.8.
|
162
|
+
rubygems_version: 1.8.24
|
117
163
|
signing_key:
|
118
164
|
specification_version: 3
|
119
165
|
summary: A configurable and documented Rails view helper for adding gravatars into
|