gravatarify 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -60,7 +60,7 @@ When using Rails or HAML these should be automatically available, if not do some
60
60
 
61
61
  This then provides three helper methods: `gravatar_url`, `gravatar_attrs` and `gravatar_tag`.
62
62
  To just build a simple `<img/>` tag, pass in an object (if it responds to `email` or `mail`)
63
- or a string containg the e-mail address:
63
+ or a string containing the e-mail address:
64
64
 
65
65
  <%= gravatar_tag @user %> # => assumes @user has email or mail field!
66
66
 
@@ -188,7 +188,7 @@ Need more control?
188
188
  </tr>
189
189
  </table>
190
190
 
191
- To options globally, access the `Gravatarify.options` hash and set any options which should apply to all
191
+ To set the options globally, access the `Gravatarify.options` hash and set any options which should apply to all
192
192
  gravatar urls there. Of course all settings can be overridden locally:
193
193
 
194
194
  # disable suffix and set default size to 16x16px
@@ -197,7 +197,13 @@ gravatar urls there. Of course all settings can be overridden locally:
197
197
 
198
198
  gravatar_url(@user.email) # => http://0.gravatar.com/avatar/..f93ff1e?s=16
199
199
  gravatar_url(@user.email, :filetype => :png) # => http://0.gravatar.com/avatar/..f93ff1e.png?s=16
200
+
201
+ A pretty nifty option also exists to set options globally for `gravatar_tag` and `gravatar_attrs`, e.g.
202
+ to always add a title attribute:
200
203
 
204
+ # add title attribute
205
+ Gravatarify::Helper.html_options[:title] = "Gravatar"
206
+
201
207
  ### Not yet enough?
202
208
 
203
209
  The `:default` option can be passed in a `Proc`, so this is certainly useful to for example
@@ -228,7 +234,7 @@ it should evaluate against `request.ssl?` for example.
228
234
  About the code
229
235
  ==============
230
236
 
231
- Eventhough this library has less than 100 LOC, it's split into four files, maybe a bit
237
+ Eventhough this library has about 100 LOC, it's split into four files, maybe a bit
232
238
  of an overkill, though I like neat and tidy classes :)
233
239
 
234
240
  lib/gravatarify.rb # loads the other files from lib/gravatarify
@@ -245,13 +251,17 @@ of an overkill, though I like neat and tidy classes :)
245
251
  # gravatarify class method to add a gravatar_url
246
252
  # to any object.
247
253
 
248
- lib/gravatarify/helper.rb # Defines those view helpers, mainly gravatar_tag
249
-
254
+ lib/gravatarify/helper.rb # Defines those view helpers, mainly gravatar_attrs
255
+ # and gravatar_tag
250
256
  ### Contribute
251
257
 
252
258
  1. Fork the project and hack away
253
259
  2. Ensure that the changes are well tested
254
260
  3. Send me a pull request
261
+
262
+ ### Thanks
263
+
264
+ - [gudleik](http://github.com/gudleik) for his work on allowing an empty `:filetype`
255
265
 
256
266
  Licence
257
267
  =======
data/Rakefile CHANGED
@@ -30,10 +30,11 @@ begin
30
30
  require 'jeweler'
31
31
  Jeweler::Tasks.new do |gemspec|
32
32
  gemspec.name = "gravatarify"
33
- gemspec.summary = "Awesome gravatar support for ruby (and rails)."
33
+ gemspec.summary = "Awesome gravatar support for Ruby (and Rails, DataMapper, Haml)."
34
34
  description = <<-DESC
35
- Yet another ruby/rails gravatar plugin - though, one with unique options like
36
- `Proc`s for default images, or support for gravatar.com's multiple host names.
35
+ Awesome gravatar support for Ruby (and Rails, DataMapper, Haml) -
36
+ with unique options like Proc's for default images, or
37
+ support for gravatar.com's multiple host names.
37
38
  DESC
38
39
  gemspec.description = description.strip
39
40
  gemspec.email = "lukas.westermann@gmail.com"
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 2
4
- :patch: 0
4
+ :patch: 1
@@ -1,19 +1,7 @@
1
1
  require 'digest/md5'
2
2
  begin; require 'rack/utils'; rescue LoadError; require 'cgi' end
3
3
 
4
- module Gravatarify
5
- # Subdomains used for balancing
6
- GRAVATAR_SUBDOMAINS = %w{ 0 1 2 www }
7
-
8
- # Fallback if no subdomain is found
9
- GRAVATAR_DEFAULT_SUBDOMAIN = 'www'
10
-
11
- # If no size is specified, gravatar.com returns 80x80px images
12
- GRAVATAR_DEFAULT_SIZE = 80
13
-
14
- # Default filetype is JPG
15
- GRAVATAR_DEFAULT_FILETYPE = :jpg
16
-
4
+ module Gravatarify
17
5
  # List of known and valid gravatar options (includes shortened options).
18
6
  GRAVATAR_OPTIONS = [ :default, :d, :rating, :r, :size, :s, :secure, :filetype ]
19
7
 
@@ -35,7 +23,7 @@ module Gravatarify
35
23
  # # or disable adding an extension
36
24
  # Gravatarify.options[:filetype] = false
37
25
  #
38
- def options; @options ||= {} end
26
+ def options; @options ||= { :filetype => :jpg } end
39
27
 
40
28
  # Globally overide subdomains used to build gravatar urls, normally
41
29
  # +gravatarify+ picks from either +0.gravatar.com+, +1.gravatar.com+,
@@ -53,16 +41,16 @@ module Gravatarify
53
41
  # i.e. disable host balancing!
54
42
  def use_www_only!; self.subdomains = %w{ www } end
55
43
 
56
- # Access currently defined subdomains, defaults are +GRAVTAR_SUBDOMAINS+.
57
- def subdomains; @subdomains ||= GRAVATAR_SUBDOMAINS end
44
+ # Access currently defined subdomains, defaults are +%w{ 0 1 2 www }+.
45
+ def subdomains; @subdomains ||= %w{ 0 1 2 www } end
58
46
 
59
- # Get subdomain for supplied string or returns +GRAVATAR_DEFAULT_SUBDOMAIN+ if none is
47
+ # Get subdomain for supplied string or returns +www+ if none is
60
48
  # defined.
61
- def subdomain(str); subdomains[str.hash % subdomains.size] || GRAVATAR_DEFAULT_SUBDOMAIN end
49
+ def subdomain(str); subdomains[str.hash % subdomains.size] || 'www' end
62
50
 
63
- # Helper method to escape string using either <tt>Rack::Utils</tt> if available or else
51
+ # Helper method to URI escape a string using either <tt>Rack::Utils#escape</tt> if available or else
64
52
  # fallback to <tt>CGI#escape</tt>.
65
- def escape(str)
53
+ def escape(str) #:nodoc:
66
54
  str = str.to_s unless str.is_a?(String) # convert to string!
67
55
  defined?(Rack::Utils) ? Rack::Utils.escape(str) : CGI.escape(str)
68
56
  end
@@ -104,14 +92,14 @@ module Gravatarify
104
92
  # @option url_options [Integer] :size (80) The size of the (square) image.
105
93
  # @option url_options [Boolean, Proc] :secure (false) If set to +true+, then uses the secure gravatar.com URL. If a Proc is
106
94
  # supplied it's evaluated, the Proc should evaluate to +true+ or +false+.
107
- # @option url_options [String, Symbol] :filetype (:jpg) Gravatar.com supports only <tt>:gif</tt>, <tt>:jpg</tt> and <tt>:png</tt>
95
+ # @option url_options [String, Symbol] :filetype (:jpg) Gravatar.com supports only <tt>:gif</tt>, <tt>:jpg</tt> and <tt>:png</tt>.
96
+ # if an set to +false+, +nil+ or an empty string no extension is added.
108
97
  # @return [String] In any case (even if supplied +email+ is +nil+) returns a fully qualified gravatar.com URL.
109
98
  # The returned string is not yet HTML escaped, *but* all +url_options+ have been URI escaped.
110
99
  def build_gravatar_url(email, url_options = {})
111
- # FIXME: add symbolize_keys again, maybe just write custom method, so we do not depend on ActiveSupport magic...
112
100
  url_options = Gravatarify.options.merge(url_options)
113
101
  email_hash = Digest::MD5.hexdigest(Base.get_smart_email_from(email).strip.downcase)
114
- extension = url_options[:filetype] == false ? '' : ".#{url_options.delete(:filetype) || GRAVATAR_DEFAULT_FILETYPE}"
102
+ extension = (ext = url_options.delete(:filetype) and ext != '') ? ".#{ext || 'jpg'}" : '' # slightly adapted from gudleik's implementation
115
103
  build_gravatar_host(email_hash, url_options.delete(:secure)) << "/avatar/#{email_hash}#{extension}#{build_gravatar_options(email, url_options)}"
116
104
  end
117
105
 
@@ -140,7 +128,9 @@ module Gravatarify
140
128
  "?#{params.sort * '&'}" unless params.empty?
141
129
  end
142
130
 
143
- def self.get_smart_email_from(obj)
131
+ # Tries first to call +email+, then +mail+ then +to_s+ on supplied
132
+ # object.
133
+ def self.get_smart_email_from(obj) #:nodoc:
144
134
  (obj.respond_to?(:email) ? obj.email : (obj.respond_to?(:mail) ? obj.mail : obj)).to_s
145
135
  end
146
136
  end
@@ -2,7 +2,15 @@ module Gravatarify::Helper
2
2
  # so that it's possible to access that build_gravatar_url method
3
3
  include Gravatarify::Base
4
4
 
5
- # to simplify things a bit and have a neat-o naming
5
+ # Allow HTML options to be overriden globally as well, useful
6
+ # to e.g. define a common alt attribute, or class.
7
+ #
8
+ # Gravatarify::Helper.html_options[:title] = "Gravatar"
9
+ #
10
+ # @return [Hash] globally defined html attributes
11
+ def self.html_options; @html_options ||= { :alt => '' } end
12
+
13
+ # To simplify things a bit and have a neat-o naming
6
14
  alias_method :gravatar_url, :build_gravatar_url
7
15
 
8
16
  # Helper method for HAML to return a neat hash to be used as attributes in an image tag.
@@ -11,17 +19,28 @@ module Gravatarify::Helper
11
19
  #
12
20
  # %img{ gravatar_attrs(@user.mail, :size => 20) }/
13
21
  #
22
+ # This is also the base method for +gravatar_tag+.
23
+ #
24
+ # @param [String, #email, #mail, #gravatar_url] email a string or an object used
25
+ # to generate to gravatar url for.
26
+ # @param [Hash] options other gravatar or html options for building the resulting
27
+ # hash.
28
+ # @return [Hash] all html attributes required to build an +img+ tag.
14
29
  def gravatar_attrs(email, options = {})
15
- url_options = options.reject { |key, value| !Gravatarify::GRAVATAR_OPTIONS.include?(key) }
16
- options = options.delete_if { |key, value| Gravatarify::GRAVATAR_OPTIONS.include?(key) }
17
- options[:alt] ||= Gravatarify::Base.get_smart_email_from(email) # use email as :alt attribute
18
- options[:width] = options[:height] = (url_options[:size] || Gravatarify::GRAVATAR_DEFAULT_SIZE) # customize size
30
+ url_options = options.inject({}) { |hsh, (key, value)| hsh[key] = options.delete(key) if Gravatarify::GRAVATAR_OPTIONS.include?(key.to_sym); hsh }
31
+ options[:width] = options[:height] = (url_options[:size] || 80) # customize size
19
32
  options[:src] = email.respond_to?(:gravatar_url) ? email.gravatar_url(url_options) : build_gravatar_url(email, url_options)
20
- options
33
+ Gravatarify::Helper.html_options.merge(options)
21
34
  end
22
35
 
23
36
  # Takes care of creating an <tt><img/></tt>-tag based on a gravatar url, it no longer
24
37
  # makes use of any Rails helper, so is totally useable in any other library.
38
+ #
39
+ # @param [String, #email, #mail, #gravatar_url] email a string or an object used
40
+ # to generate the gravatar url from
41
+ # @param [Hash] options other gravatar or html options for building the resulting
42
+ # image tag.
43
+ # @return [String] a complete and hopefully valid +img+ tag.
25
44
  def gravatar_tag(email, options = {})
26
45
  html_attrs = gravatar_attrs(email, options).map do |key,value|
27
46
  escaped = defined?(Rack::Utils) ? Rack::Utils.escape_html(value) : CGI.escapeHTML(value)
@@ -16,8 +16,9 @@
16
16
  # include DataMapper::Resource
17
17
  # property ...
18
18
  # property :author_email, String
19
+ # gravatarify :author_email
19
20
  # end
20
- # @user.gravatar_url :author_email # that's it, using the specified field!
21
+ # @user.gravatar_url # that's it, using the specified field!
21
22
  #
22
23
  # And finally, using a plain old ruby object:
23
24
  #
data/test/test_helper.rb CHANGED
@@ -13,7 +13,13 @@ Test::Unit::TestCase.send :include, RR::Adapters::TestUnit
13
13
  # Reset +Gravatarify+ to default hosts and cleared options
14
14
  def reset_gravatarify!
15
15
  Gravatarify.options.clear
16
- Gravatarify.subdomains = Gravatarify::GRAVATAR_SUBDOMAINS
16
+ Gravatarify.options[:filetype] = :jpg
17
+ Gravatarify.subdomains = %w{ 0 1 2 www }
18
+
19
+ if defined?(Gravatarify::Helper)
20
+ Gravatarify::Helper.html_options.clear
21
+ Gravatarify::Helper.html_options[:alt] = ''
22
+ end
17
23
  end
18
24
 
19
25
  # some often used values...
@@ -46,9 +46,12 @@ class GravatarifyBaseTest < Test::Unit::TestCase
46
46
  assert_equal "#{BELLA_AT_GMAIL}.png", build_gravatar_url('bella@gmail.com', :filetype => :png)
47
47
  end
48
48
 
49
- should "skip :filetype if set to false" do
50
- assert_equal "#{BELLA_AT_GMAIL}", build_gravatar_url('bella@gmail.com', :filetype => false)
51
- assert_equal "#{BELLA_AT_GMAIL_JPG}", build_gravatar_url('bella@gmail.com', :filetype => nil)
49
+ should "skip :filetype if set to false, nil or ''" do
50
+ assert_equal "#{BELLA_AT_GMAIL}", build_gravatar_url('bella@gmail.com', :filetype => false)
51
+ assert_equal "#{BELLA_AT_GMAIL}", build_gravatar_url('bella@gmail.com', :filetype => nil)
52
+ assert_equal "#{BELLA_AT_GMAIL}", build_gravatar_url('bella@gmail.com', :filetype => '')
53
+ assert_equal "#{BELLA_AT_GMAIL}.foobar", build_gravatar_url('bella@gmail.com', :filetype => 'foobar')
54
+ assert_equal "#{BELLA_AT_GMAIL}.gif", build_gravatar_url('bella@gmail.com', :filetype => :gif)
52
55
  end
53
56
 
54
57
  should "handle Procs as :default, to easily generate default urls based on supplied :size" do
@@ -19,22 +19,18 @@ class GravatarifyHelpersTest < Test::Unit::TestCase
19
19
  context "#gravatar_attrs" do
20
20
  should "return hash with :height, :width, :alt and :src defined" do
21
21
  hash = gravatar_attrs('bella@gmail.com', :size => 16)
22
- assert_equal "#{BELLA_AT_GMAIL_JPG}?s=16", hash[:src]
23
- assert_equal 16, hash[:width]
24
- assert_equal 16, hash[:height]
25
- assert_equal 'bella@gmail.com', hash[:alt]
22
+ expected = { :alt => "", :src => "#{BELLA_AT_GMAIL_JPG}?s=16", :width => 16, :height => 16 }
23
+ assert_equal expected, hash
26
24
  assert_nil hash[:size]
27
25
  end
28
26
 
29
27
  should "allow any param to be defined/overridden, except src, width and heigth" do
30
28
  hash = gravatar_attrs('bella@gmail.com', :size => 20, :r => :x, :height => 40, :alt => 'bella', :id => 'test', :title => 'something', :class => 'gravatar')
31
- assert_equal "#{BELLA_AT_GMAIL_JPG}?r=x&s=20", hash[:src]
32
- assert_equal 20, hash[:width]
33
- assert_equal 20, hash[:height]
34
- assert_equal 'bella', hash[:alt]
35
- assert_equal 'test', hash[:id]
36
- assert_equal 'something', hash[:title]
37
- assert_equal 'gravatar', hash[:class]
29
+ expected = {
30
+ :alt => 'bella', :src => "#{BELLA_AT_GMAIL_JPG}?r=x&s=20", :width => 20, :height => 20,
31
+ :id => 'test', :title => 'something', :class => 'gravatar'
32
+ }
33
+ assert_equal expected, hash
38
34
  assert_nil hash[:size]
39
35
  assert_nil hash[:r]
40
36
  end
@@ -42,18 +38,18 @@ class GravatarifyHelpersTest < Test::Unit::TestCase
42
38
 
43
39
  context "#gravatar_tag helper" do
44
40
  should "create <img/> tag with correct gravatar urls" do
45
- assert_equal '<img alt="bella@gmail.com" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" width="80" />', gravatar_tag('bella@gmail.com')
41
+ assert_equal '<img alt="" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" width="80" />', gravatar_tag('bella@gmail.com')
46
42
  end
47
43
 
48
44
  should "create <img/> tags and handle all options correctly, other options should be passed to Rails' image_tag" do
49
- assert_equal '<img alt="bella@gmail.com" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=16" width="16" />',
45
+ assert_equal '<img alt="" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=16" width="16" />',
50
46
  gravatar_tag('bella@gmail.com', :size => 16)
51
- assert_equal '<img alt="bella@gmail.com" class="gravatar" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?d=x&amp;s=16" width="16" />',
47
+ assert_equal '<img alt="" class="gravatar" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?d=x&amp;s=16" width="16" />',
52
48
  gravatar_tag('bella@gmail.com', :class => "gravatar", :size => 16, :d => "x")
53
49
  end
54
50
 
55
51
  should "ensure that all values are correctly html-esacped!" do
56
- assert_equal '<img alt="bella@gmail.com" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" title="&lt;&gt;" width="80" />',
52
+ assert_equal '<img alt="" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" title="&lt;&gt;" width="80" />',
57
53
  gravatar_tag('bella@gmail.com', :title => '<>')
58
54
  end
59
55
  end
@@ -61,18 +57,53 @@ class GravatarifyHelpersTest < Test::Unit::TestCase
61
57
  context "#gravatar_tag when passed in an object" do
62
58
  should "create <img/>-tag based on :email field" do
63
59
  obj = Object.new
64
- mock(obj).email.times(2) { "bella@gmail.com" }
60
+ mock(obj).email { "bella@gmail.com" }
65
61
 
66
- assert_equal '<img alt="bella@gmail.com" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" width="80" />',
62
+ assert_equal '<img alt="" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" width="80" />',
67
63
  gravatar_tag(obj)
68
64
  end
69
65
 
70
66
  should "create <img/>-tag based on gravatar_url from object if object responds to gravatar_url" do
71
67
  obj = Object.new
68
+ mock(obj).name { "Mr. X" }
72
69
  mock(obj).gravatar_url({ :size => 16 }) { "http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=16" }
73
70
 
74
- assert_equal '<img alt="Gravatar" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=16" width="16" />',
75
- gravatar_tag(obj, :size => 16, :alt => "Gravatar")
71
+ assert_equal '<img alt="Gravatar for Mr. X" height="16" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=16" width="16" />',
72
+ gravatar_tag(obj, :size => 16, :alt => "Gravatar for #{obj.name}")
76
73
  end
77
- end
74
+ end
75
+
76
+ context "Gravatarify::Helper#html_options" do
77
+ should "add be added to all tags/hashes created by gravatar_tag or gravatar_attrs" do
78
+ Gravatarify::Helper.html_options[:title] = "Gravatar" # add a title attribute, yeah neat-o!
79
+ Gravatarify::Helper.html_options[:class] = "gravatar"
80
+
81
+ assert_equal '<img alt="" class="gravatar" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" title="Gravatar" width="80" />',
82
+ gravatar_tag('bella@gmail.com')
83
+ hash = gravatar_attrs('bella@gmail.com', :size => 20, :title => "Gravatar for Bella", :id => "test")
84
+ expected = {
85
+ :alt => "", :width => 20, :height => 20, :src => "http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=20",
86
+ :title => "Gravatar for Bella", :id => "test", :class => "gravatar"
87
+ }
88
+ assert_equal expected, hash
89
+ end
90
+
91
+ should "not allow :src, :height or :width to be set via global options and all local options should override!" do
92
+ Gravatarify::Helper.html_options[:src] = "avatar-30.jpg"
93
+ Gravatarify::Helper.html_options[:width] = 30
94
+ Gravatarify::Helper.html_options[:title] = "Avatar"
95
+
96
+ assert_equal '<img alt="" height="25" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg?s=25" title="Gravatar" width="25" />',
97
+ gravatar_tag('bella@gmail.com', :size => 25, :title => 'Gravatar')
98
+ end
99
+
100
+ should "allow :alt to be set globally" do
101
+ Gravatarify::Helper.html_options[:alt] = "Gravatar"
102
+
103
+ assert_equal '<img alt="Gravatar" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d.jpg" width="80" />',
104
+ gravatar_tag('bella@gmail.com')
105
+ assert_equal '<img alt="Avatar" height="80" src="http://0.gravatar.com/avatar/1cacf1bc403efca2e7a58bcfa9574e4d" width="80" />',
106
+ gravatar_tag('bella@gmail.com', :filetype => false, :alt => 'Avatar')
107
+ end
108
+ end
78
109
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gravatarify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Westermann
@@ -9,13 +9,14 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-23 00:00:00 +02:00
12
+ date: 2009-10-27 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
16
  description: |-
17
- Yet another ruby/rails gravatar plugin - though, one with unique options like
18
- `Proc`s for default images, or support for gravatar.com's multiple host names.
17
+ Awesome gravatar support for Ruby (and Rails, DataMapper, Haml) -
18
+ with unique options like Proc's for default images, or
19
+ support for gravatar.com's multiple host names.
19
20
  email: lukas.westermann@gmail.com
20
21
  executables: []
21
22
 
@@ -69,7 +70,7 @@ rubyforge_project:
69
70
  rubygems_version: 1.3.5
70
71
  signing_key:
71
72
  specification_version: 3
72
- summary: Awesome gravatar support for ruby (and rails).
73
+ summary: Awesome gravatar support for Ruby (and Rails, DataMapper, Haml).
73
74
  test_files:
74
75
  - test/test_helper.rb
75
76
  - test/unit/gravatarify_ar_dm_test.rb