gravatar_image_tag 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,23 +34,36 @@ h2. Install as a Ruby on Rails Plugin
34
34
 
35
35
  h2. Usage
36
36
 
37
- Once you have installed it as a plugin for your rails app usage is simple.
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 = 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 ].
50
- config.filetype = nil # Set this if you require a specific image file format ['gif', 'jpg' or 'png']. Gravatar's default is png
51
- 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
52
- config.size = nil # Set this to globally set the size of the gravatar image returned (1..512). Gravatar's default is 80
53
- config.secure = false # Set this to true if you require secure images on your pages.
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
@@ -13,12 +13,12 @@ module GravatarImageTag
13
13
  end
14
14
 
15
15
  class Configuration
16
- attr_accessor :default_image, :filetype, :include_size_attributes, :rating, :size, :secure
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
- email = email.strip.downcase if email.is_a? String
68
- options[:src] = GravatarImageTag::gravatar_url(email, gravatar_overrides)
66
+ options[:src] = gravatar_image_url(email, gravatar_overrides)
69
67
  options[:alt] ||= 'Gravatar'
70
- options[:height] = options[:width] = "#{GravatarImageTag::gravatar_options(gravatar_overrides)[:size] || 80}" if GravatarImageTag.configuration.include_size_attributes
71
- 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
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
- "#{gravatar_url_base(gravatar_params.delete(:secure))}/#{gravatar_id(email, gravatar_params.delete(:filetype))}#{url_params(gravatar_params)}"
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 => GravatarImageTag.configuration.default_image,
86
- :filetype => GravatarImageTag.configuration.filetype,
87
- :rating => GravatarImageTag.configuration.rating,
88
- :secure => GravatarImageTag.configuration.secure,
89
- :size => GravatarImageTag.configuration.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
- "#{ Digest::MD5.hexdigest(email) }#{ ".#{filetype}" unless filetype.nil? }" unless email.nil?
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
- "?#{gravatar_params.map { |key, value| "#{key}=#{URI.escape(value.is_a?(String) ? value : value.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}"}.join('&amp;')}"
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
- { :gravatar_id => md5 } => {},
24
- { :gravatar_id => md5 } => { :gravatar => { :rating => 'x' } },
25
- { :gravatar_id => md5, :size => 30 } => { :gravatar => {:size => 30 } },
26
- { :gravatar_id => md5, :default => other_image_escaped } => { :gravatar => {:default => other_image } },
27
- { :gravatar_id => md5, :default => other_image_escaped, :size => 30 } => { :gravatar => {:default => other_image, :size => 30 } }
28
- }.each do |params, options|
29
- it "#gravatar_image_tag should create the provided url with the provided options #{options}" do
30
- view = ActionView::Base.new
31
- image_tag = view.gravatar_image_tag(email, options)
32
- image_tag.include?("#{params.delete(:gravatar_id)}").should be_true
33
- params.all? {|key, value| image_tag.include?("#{key}=#{value}")}.should be_true
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
- :default_gravatar_image => default_image,
39
- :default_gravatar_filetype => default_filetype,
40
- :default_gravatar_rating => default_rating,
41
- :default_gravatar_size => default_size,
42
- :secure_gravatar => secure
43
- }.each do |singleton_variable, value|
44
- it "should give a deprication warning for assigning to #{singleton_variable} and passthrough to set the new variable" do
45
- ActionView::Base.should_receive(:warn)
46
- ActionView::Base.send("#{singleton_variable}=", value)
47
- GravatarImageTag.configuration.default_image == value if singleton_variable == :default_gravatar_image
48
- GravatarImageTag.configuration.filetype == value if singleton_variable == :default_gravatar_filetype
49
- GravatarImageTag.configuration.rating == value if singleton_variable == :default_gravatar_rating
50
- GravatarImageTag.configuration.size == value if singleton_variable == :default_gravatar_size
51
- GravatarImageTag.configuration.secure == value if singleton_variable == :secure_gravatar
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
- # Now that the defaults are set...
56
- {
57
- { :gravatar_id => md5, :size => default_size, :default => default_image_escaped } => {},
58
- { :gravatar_id => md5, :size => 30, :default => default_image_escaped } => { :gravatar => { :size => 30 } },
59
- { :gravatar_id => md5, :size => default_size, :default => other_image_escaped } => { :gravatar => {:default => other_image } },
60
- { :gravatar_id => md5, :size => 30, :default => other_image_escaped } => { :gravatar => { :default => other_image, :size => 30 } },
61
- }.each do |params, options|
62
- it "#gravatar_image_tag #{params} should create the provided url when defaults have been set with the provided options #{options}" do
63
- view = ActionView::Base.new
64
- image_tag = view.gravatar_image_tag(email, options)
65
- image_tag.include?("#{params.delete(:gravatar_id)}.#{default_filetype}").should be_true
66
- params.all? {|key, value| image_tag.include?("#{key}=#{value}")}.should be_true
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
- it 'should request the gravatar image from the non-secure server if the https => false option is given' do
71
- (!!view.gravatar_image_tag(email, { :gravatar => { :secure => false } }).match(/^https:\/\/secure.gravatar.com\/avatar\//)).should be_false
72
- end
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
- 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
- GravatarImageTag.configure { |c| c.size = 30 }
80
- (!!view.gravatar_image_tag(email).match(/height="30"/)).should be_true
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
- it 'should set the image tags height and width attributes to 80px (gravatars default) if no size is given.' do
85
- GravatarImageTag.configure { |c| c.size = nil }
86
- (!!view.gravatar_image_tag(email).match(/height="80"/)).should be_true
87
- (!!view.gravatar_image_tag(email).match(/width="80"/)).should be_true
88
- end
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
- it 'should set the image tags height and width attributes from the overrides on the size' do
91
- GravatarImageTag.configure { |c| c.size = 120 }
92
- (!!view.gravatar_image_tag(email, :gravatar => { :size => 45 }).match(/height="45"/)).should be_true
93
- (!!view.gravatar_image_tag(email, :gravatar => { :size => 75 }).match(/width="75"/)).should be_true
94
- end
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
- it 'should not include the height and width attributes on the image tag if it is turned off in the configuration' do
98
- GravatarImageTag.configure { |c| c.include_size_attributes = false }
99
- (!!view.gravatar_image_tag(email).match(/height=/)).should be_false
100
- (!!view.gravatar_image_tag(email).match(/width=/)).should be_false
101
- end
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
- it 'GravatarImageTag#gravitar_id should not error out when email is nil' do
104
- lambda { GravatarImageTag::gravatar_id(nil) }.should_not raise_error(TypeError)
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
- it 'should normalize the email to Gravatar standards (http://en.gravatar.com/site/implement/hash/)' do
108
- view.gravatar_image_tag(" camelCaseEmail@example.com\t\n").should == view.gravatar_image_tag('camelcaseemail@example.com')
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
@@ -6,6 +6,8 @@ require 'digest/md5'
6
6
  require 'uri'
7
7
 
8
8
  RSpec.configure do |config|
9
+ config.filter_run focus: true
10
+ config.run_all_when_everything_filtered = true
9
11
  end
10
12
 
11
13
  $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
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.1.3
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: 2012-06-24 00:00:00.000000000 Z
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: &70128934983540 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 3.2.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70128934983540
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: &70128934980640 !ruby/object:Gem::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: *70128934980640
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: &70128934979620 !ruby/object:Gem::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: *70128934979620
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: &70128934978200 !ruby/object:Gem::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: *70128934978200
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: *70128934992100
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: rspec
71
- requirement: &70128934988620 !ruby/object:Gem::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: *70128934988620
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: -2871741431214581742
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.11
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