gravatar_image_tag 1.0.0 → 1.1.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.
@@ -60,9 +60,9 @@ p. *Splat* the default gravatar image !http://www.gravatar.com/avatar/0c821f675f
60
60
 
61
61
  p. You can set the default gravatar image inline as follows:
62
62
 
63
- <pre>gravatar_image_tag('junk', :alt => 'Github Default Gravatar', :gravatar => { :default => 'http://github.com/images/gravatars/gravatar-80.png' })</pre>
63
+ <pre>gravatar_image_tag('junk', :alt => 'Github Default Gravatar', :gravatar => { :default => 'https://assets.github.com/images/gravatars/gravatar-140.png' })</pre>
64
64
 
65
- p. *Ka-Pow* !http://www.gravatar.com/avatar/0c821f675f132d790b3f25e79da739a7?default=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-80.png(Github Default Gravatar)!
65
+ p. *Ka-Pow* !https://assets.github.com/images/gravatars/gravatar-140.png(Github Default Gravatar)!
66
66
 
67
67
  p. Other options supported besides an image url to fall back on include the following:
68
68
 
@@ -103,6 +103,6 @@ p. You can set the gravatar filetype inline as follows:
103
103
 
104
104
  h2. Credits
105
105
 
106
- The ideas an 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
106
+ 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
107
107
 
108
108
  Copyright (c) 2009-2010 "Michael Deering(Ruby on Rails Development Edmonton)":http://mdeering.com, released under the MIT license
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rake'
2
- require 'rake/rdoctask'
3
- require 'spec/rake/spectask'
2
+ require 'rspec/core/rake_task'
4
3
 
5
4
  begin
6
5
  AUTHOR = "Michael Deering"
@@ -28,23 +27,11 @@ desc 'Default: spec tests.'
28
27
  task :default => :spec
29
28
 
30
29
  desc 'Test the gravatar_image_tag gem.'
31
- Spec::Rake::SpecTask.new('spec') do |t|
32
- t.spec_files = FileList['spec/**/*_spec.rb']
33
- t.spec_opts = ["-c"]
30
+ RSpec::Core::RakeTask.new do |t|
34
31
  end
35
32
 
36
33
  desc "Run all examples with RCov"
37
- Spec::Rake::SpecTask.new('examples_with_rcov') do |t|
38
- t.spec_files = FileList['spec/**/*_spec.rb']
34
+ RSpec::Core::RakeTask.new(:coverage) do |t|
39
35
  t.rcov = true
40
36
  t.rcov_opts = ['--exclude', '/opt,spec,Library']
41
37
  end
42
-
43
- desc 'Generate documentation for the gravatar_image_tag plugin.'
44
- Rake::RDocTask.new(:rdoc) do |rdoc|
45
- rdoc.rdoc_dir = 'rdoc'
46
- rdoc.title = 'GravatarImageTag'
47
- rdoc.options << '--line-numbers' << '--inline-source'
48
- rdoc.rdoc_files.include('README.textile')
49
- rdoc.rdoc_files.include('lib/**/*.rb')
50
- end
@@ -13,8 +13,13 @@ module GravatarImageTag
13
13
  end
14
14
 
15
15
  class Configuration
16
- attr_accessor :default_image, :filetype, :rating, :size, :secure
17
- end
16
+ attr_accessor :default_image, :filetype, :include_size_attributes, :rating, :size, :secure
17
+
18
+ def initialize
19
+ @include_size_attributes = true
20
+ end
21
+
22
+ end
18
23
 
19
24
  def self.included(base)
20
25
  GravatarImageTag.configure { |c| nil }
@@ -58,27 +63,32 @@ module GravatarImageTag
58
63
  module InstanceMethods
59
64
 
60
65
  def gravatar_image_tag(email, options = {})
61
- options[:src] = GravatarImageTag::gravatar_url( email, options.delete( :gravatar ) )
66
+ gravatar_overrides = options.delete(:gravatar)
67
+ options[:src] = GravatarImageTag::gravatar_url(email, gravatar_overrides)
62
68
  options[:alt] ||= 'Gravatar'
69
+ options[:height] = options[:width] = "#{GravatarImageTag::gravatar_options(gravatar_overrides)[:size]}px" if GravatarImageTag.configuration.include_size_attributes
63
70
  tag 'img', options, false, false # Patch submitted to rails to allow image_tag here https://rails.lighthouseapp.com/projects/8994/tickets/2878-image_tag-doesnt-allow-escape-false-option-anymore
64
71
  end
65
72
 
66
73
  end
67
74
 
68
75
  def self.gravatar_url(email, overrides = {})
69
- overrides ||= {}
70
- gravatar_params = {
71
- :default => GravatarImageTag.configuration.default_image,
72
- :filetype => GravatarImageTag.configuration.filetype,
73
- :rating => GravatarImageTag.configuration.rating,
74
- :secure => GravatarImageTag.configuration.secure,
75
- :size => GravatarImageTag.configuration.size
76
- }.merge(overrides).delete_if { |key, value| value.nil? }
76
+ gravatar_params = gravatar_options(overrides || {})
77
77
  "#{gravatar_url_base(gravatar_params.delete(:secure))}/#{gravatar_id(email, gravatar_params.delete(:filetype))}#{url_params(gravatar_params)}"
78
78
  end
79
79
 
80
80
  private
81
81
 
82
+ def self.gravatar_options(overrides = {})
83
+ {
84
+ :default => GravatarImageTag.configuration.default_image,
85
+ :filetype => GravatarImageTag.configuration.filetype,
86
+ :rating => GravatarImageTag.configuration.rating,
87
+ :secure => GravatarImageTag.configuration.secure,
88
+ :size => GravatarImageTag.configuration.size
89
+ }.merge(overrides || {}).delete_if { |key, value| value.nil? }
90
+ end
91
+
82
92
  def self.gravatar_url_base(secure = false)
83
93
  'http' + (!!secure ? 's://secure.' : '://') + 'gravatar.com/avatar'
84
94
  end
@@ -75,8 +75,19 @@ describe GravatarImageTag do
75
75
  (!!view.gravatar_image_tag(email, { :gravatar => { :secure => true } }).match(/src="https:\/\/secure.gravatar.com\/avatar\//)).should be_true
76
76
  end
77
77
 
78
+ 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
79
+ (!!view.gravatar_image_tag(email).match(/height="50px"/)).should be_true
80
+ (!!view.gravatar_image_tag(email).match(/width="50px"/)).should be_true
81
+ end
82
+
83
+ it 'should not include the height and width attributes on the image tag if it is turned off in the configuration' do
84
+ GravatarImageTag.configure { |c| c.include_size_attributes = false }
85
+ (!!view.gravatar_image_tag(email).match(/height=/)).should be_false
86
+ (!!view.gravatar_image_tag(email).match(/width=/)).should be_false
87
+ end
88
+
78
89
  it 'GravatarImageTag#gravitar_id should not error out when email is nil' do
79
- lambda { GravatarImageTag::gravatar_id(nil) }.should_not raise_error(TypeError)
90
+ lambda { GravatarImageTag::gravatar_id(nil) }.should_not raise_error(TypeError)
80
91
  end
81
92
 
82
93
  end
@@ -1,11 +1,11 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ #require 'spec'
3
3
  require 'active_support'
4
4
  require 'action_view'
5
5
  require 'digest/md5'
6
6
  require 'uri'
7
7
 
8
- Spec::Runner.configure do |config|
8
+ RSpec.configure do |config|
9
9
  end
10
10
 
11
11
  $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
metadata CHANGED
@@ -1,73 +1,118 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gravatar_image_tag
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Michael Deering
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-01-16 00:00:00 -07:00
19
- default_executable:
20
- dependencies: []
21
-
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: &70174494367000 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70174494367000
25
+ - !ruby/object:Gem::Dependency
26
+ name: actionpack
27
+ requirement: &70174494366520 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70174494366520
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard
38
+ requirement: &70174494366040 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70174494366040
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard-rspec
49
+ requirement: &70174494365460 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70174494365460
58
+ - !ruby/object:Gem::Dependency
59
+ name: jeweler
60
+ requirement: &70174494364980 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70174494364980
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &70174494364400 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70174494364400
22
80
  description:
23
81
  email: mdeering@mdeering.com
24
82
  executables: []
25
-
26
83
  extensions: []
27
-
28
- extra_rdoc_files:
84
+ extra_rdoc_files:
29
85
  - README.textile
30
- files:
86
+ files:
31
87
  - MIT-LICENSE
32
88
  - README.textile
33
89
  - Rakefile
34
90
  - lib/gravatar_image_tag.rb
35
91
  - spec/gravatar_image_tag_spec.rb
36
92
  - spec/test_helper.rb
37
- has_rdoc: true
38
93
  homepage: http://github.com/mdeering/gravatar_image_tag
39
94
  licenses: []
40
-
41
95
  post_install_message:
42
- rdoc_options:
43
- - --charset=UTF-8
44
- require_paths:
96
+ rdoc_options: []
97
+ require_paths:
45
98
  - lib
46
- required_ruby_version: !ruby/object:Gem::Requirement
99
+ required_ruby_version: !ruby/object:Gem::Requirement
47
100
  none: false
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- hash: 3
52
- segments:
53
- - 0
54
- version: "0"
55
- required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
106
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
64
111
  requirements: []
65
-
66
112
  rubyforge_project:
67
- rubygems_version: 1.3.7
113
+ rubygems_version: 1.8.10
68
114
  signing_key:
69
115
  specification_version: 3
70
- summary: A configurable and documented Rails view helper for adding gravatars into your Rails application.
71
- test_files:
72
- - spec/gravatar_image_tag_spec.rb
73
- - spec/test_helper.rb
116
+ summary: A configurable and documented Rails view helper for adding gravatars into
117
+ your Rails application.
118
+ test_files: []