acts_as_gravatar 0.1.0 → 1.0.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.
- checksums.yaml +4 -4
- data/README.md +18 -19
- data/lib/acts_as_gravatar.rb +44 -46
- data/lib/acts_as_gravatar/enums/image_type.rb +5 -5
- data/lib/acts_as_gravatar/enums/rating.rb +1 -1
- data/lib/acts_as_gravatar/gravatar.rb +52 -46
- data/lib/acts_as_gravatar/version.rb +1 -1
- data/spec/acts_as_gravatar/gravatar_spec.rb +66 -42
- data/spec/acts_as_gravatar_spec.rb +73 -31
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b4c47913dc7fd944b2281cdbe9b0e92e5710880
|
4
|
+
data.tar.gz: 7975c899b60d71446d296d43086ad9737643d363
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1b49ae702b606d6d365fb73476efccf76e55cbc44e6e132d4f78f579ca1320d668d758dedbfb1961b04fa700a74911ead2bb9eb949c2850eae1e4d92ea79203
|
7
|
+
data.tar.gz: 8c293369b5ef13fa5644a6099a956f79d2c5eefcbaaec201d9a61f567bc7edf47370e866453766bdf0a06757419abc8646e07de7ac5d1f72acfd4a64038f00e2
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# acts_as_gravatar
|
2
2
|
|
3
3
|
acts\_as\_gravatar provide simple access to gravatar from ActiveRecord.
|
4
|
+
From the email columns (can set it optionally) such as devices, acts_as_gravatar generate a URL of gravatar.
|
4
5
|
|
5
6
|
## Installation
|
6
7
|
|
@@ -33,49 +34,47 @@ The next method becomes to be usable.
|
|
33
34
|
user = User.find(1); #
|
34
35
|
|
35
36
|
# get html tag of gravatar.
|
36
|
-
user.
|
37
|
+
user.gravatar_profile # URL of gravatar profile.
|
37
38
|
|
38
39
|
# get url of gravatar.
|
39
|
-
user.
|
40
|
+
user.gravatar_image # URL of gravatar image.
|
40
41
|
|
41
42
|
```
|
42
43
|
acts\_as\_gravatar read `email` column.(default)
|
43
44
|
|
44
45
|
### Options
|
45
46
|
when call acts\_as\_gravatar, can set default values.
|
46
|
-
|
47
|
+
(The option not to appoint at the time of acts_as_gravatar summons becomes the default of gravatar.)
|
47
48
|
```
|
48
49
|
class User < ActiveRecord::Base
|
49
50
|
acts_as_gravatar({
|
50
|
-
:column => :email
|
51
|
-
:
|
52
|
-
:
|
53
|
-
:
|
54
|
-
:rating => ActsAsGravatar::Enums::Rating #
|
55
|
-
:
|
51
|
+
:column => :email, # email column of Model.
|
52
|
+
:default_image => nil, # default_image.(URL or gravatar default image param.)
|
53
|
+
:force_default => false, # force the default image.
|
54
|
+
:image_type => ActsAsGravatar::Enums::ImageType::PNG, # image_type. (JPG/JPEG/GIF/PNG)
|
55
|
+
:rating => ActsAsGravatar::Enums::Rating::PG, # rating. (G/PG/R/X)
|
56
|
+
:secure => false, # secure protocol. (https).
|
57
|
+
:size => 80, # image size.
|
56
58
|
})
|
57
59
|
end
|
58
60
|
```
|
59
61
|
|
60
|
-
And can set options, when call `
|
62
|
+
And can set options, when call `gravatar_image` or `gravatar_profile`.
|
61
63
|
|
62
64
|
```
|
63
65
|
user = User.find(1); #
|
64
66
|
|
65
67
|
# get url of gravatar.
|
66
|
-
user.
|
67
|
-
|
68
|
-
```
|
68
|
+
user.gravatar_image :secure => true, :size => 200
|
69
69
|
|
70
|
-
gravatar_tag can set some html attributes.
|
71
|
-
|
72
|
-
```
|
73
|
-
user = User.find(1); #
|
74
70
|
|
75
71
|
# get tag of gravatar.
|
76
|
-
user.gravatar_tag
|
72
|
+
user.gravatar_tag :column => :other_column
|
77
73
|
```
|
78
74
|
|
75
|
+
## API DOCUMENT
|
76
|
+
|
77
|
+
* [acts_as_gravatar](http://rubydoc.info/github/alfa-jpn/acts_as_gravatar/frames)
|
79
78
|
|
80
79
|
## Contributing
|
81
80
|
|
data/lib/acts_as_gravatar.rb
CHANGED
@@ -8,17 +8,18 @@ module ActsAsGravatar
|
|
8
8
|
# Use acts_as_gravatar in model.
|
9
9
|
#
|
10
10
|
# @example
|
11
|
-
# acts_as_gravatar
|
12
|
-
# :column => :email
|
13
|
-
# :
|
14
|
-
# :
|
15
|
-
# :
|
16
|
-
# :rating => ActsAsGravatar::Enums::Rating #
|
17
|
-
# :
|
18
|
-
#
|
11
|
+
# acts_as_gravatar({
|
12
|
+
# :column => :email, # email column of Model.
|
13
|
+
# :default_image => nil, # default_image.(URL or gravatar default image param.)
|
14
|
+
# :force_default => false, # force the default image.
|
15
|
+
# :image_type => ActsAsGravatar::Enums::ImageType::PNG, # image_type. (JPG/JPEG/GIF/PNG)
|
16
|
+
# :rating => ActsAsGravatar::Enums::Rating::PG, # rating. (G/PG/R/X)
|
17
|
+
# :secure => false, # secure protocol. (https).
|
18
|
+
# :size => 80, # image size.
|
19
|
+
# })
|
19
20
|
#
|
20
|
-
# @params
|
21
|
-
def acts_as_gravatar(
|
21
|
+
# @params default_options [Hash] Default options of ActsAsGravatar.
|
22
|
+
def acts_as_gravatar(default_options = {})
|
22
23
|
options = {
|
23
24
|
:column => :email,
|
24
25
|
:secure => false,
|
@@ -26,10 +27,10 @@ module ActsAsGravatar
|
|
26
27
|
:default_image => nil,
|
27
28
|
:rating => nil,
|
28
29
|
:image_type => nil
|
29
|
-
}.merge(
|
30
|
+
}.merge(default_options)
|
30
31
|
|
31
32
|
include ActsAsGravatar::Methods
|
32
|
-
instance_variable_set(:@
|
33
|
+
instance_variable_set(:@acts_as_gravatar_default_options, options)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
@@ -45,57 +46,54 @@ module ActsAsGravatar
|
|
45
46
|
#
|
46
47
|
# # with option.
|
47
48
|
# url = user.gravatar_url {
|
48
|
-
# :
|
49
|
-
# :
|
50
|
-
# :
|
51
|
-
# :
|
52
|
-
# :
|
49
|
+
# :column => :email, # email column of Model.
|
50
|
+
# :default_image => nil, # default_image.(URL or gravatar default image param.)
|
51
|
+
# :force_default => false, # force the default image.
|
52
|
+
# :image_type => ActsAsGravatar::Enums::ImageType::PNG, # image_type. (JPG/JPEG/GIF/PNG)
|
53
|
+
# :rating => ActsAsGravatar::Enums::Rating::PG, # rating. (G/PG/R/X)
|
54
|
+
# :secure => false, # secure protocol. (https).
|
55
|
+
# :size => 80, # image size.
|
53
56
|
# }
|
54
57
|
#
|
55
|
-
# @param options [Hash] Option of gravatar.
|
58
|
+
# @param options [Hash] Option of gravatar image.
|
56
59
|
#
|
57
60
|
# @return [String] Url of Gravatar image.
|
58
|
-
def
|
59
|
-
|
60
|
-
email = send(
|
61
|
+
def gravatar_image(options = {})
|
62
|
+
opts = gravatar_option(options)
|
63
|
+
email = send(opts[:column])
|
61
64
|
|
62
|
-
ActsAsGravatar::Gravatar.
|
63
|
-
email, opt[:secure], opt[:size], opt[:default_image], opt[:rating], opt[:image_type]
|
64
|
-
)
|
65
|
+
ActsAsGravatar::Gravatar.generate_image(email, opts)
|
65
66
|
end
|
66
67
|
|
67
|
-
# Generate a
|
68
|
+
# Generate a URL of Gravatar profile.
|
68
69
|
# @example
|
69
70
|
# user = User.find(1)
|
70
71
|
# # get url with default options.
|
71
|
-
#
|
72
|
+
# profile = user.gravatar_profile
|
72
73
|
#
|
73
74
|
# # with option.
|
74
|
-
#
|
75
|
-
# :
|
76
|
-
# :size => 80 # default image size.
|
77
|
-
# :default_image => nil # default default_image.
|
78
|
-
# :rating => ActsAsGravatar::Enums::Rating # default rating.
|
79
|
-
# :image_type => ActsAsGravatar::Enums::ImageType # default image_type.
|
80
|
-
# }
|
81
|
-
#
|
82
|
-
# # with attributes of tag.
|
83
|
-
# tag = user.gravatar_tag {},{
|
84
|
-
# width: "100px",
|
85
|
-
# height: "100px"
|
75
|
+
# profile = user.gravatar_profile {
|
76
|
+
# :column => :email
|
86
77
|
# }
|
87
78
|
#
|
88
|
-
# @param options [Hash] Option of gravatar.
|
89
|
-
# @param attributes [Hash] Attributes of tag.
|
79
|
+
# @param options [Hash] Option of gravatar profile.
|
90
80
|
#
|
91
81
|
# @return [String] tag of Gravatar image.
|
92
|
-
def
|
93
|
-
|
94
|
-
email = send(
|
82
|
+
def gravatar_profile(options = {})
|
83
|
+
opts = gravatar_option(options)
|
84
|
+
email = send(opts[:column])
|
95
85
|
|
96
|
-
ActsAsGravatar::Gravatar.
|
97
|
-
|
98
|
-
|
86
|
+
ActsAsGravatar::Gravatar.generate_profile(email, opts)
|
87
|
+
end
|
88
|
+
|
89
|
+
private
|
90
|
+
# Get options of gravatar.
|
91
|
+
# @note return default options merge merge_options.
|
92
|
+
#
|
93
|
+
# @param merge_options [Hash] Options of gravatar.
|
94
|
+
# @return [Hash] Options of gravatar.
|
95
|
+
def gravatar_option(merge_options = {})
|
96
|
+
self.class.instance_variable_get(:@acts_as_gravatar_default_options).merge(merge_options)
|
99
97
|
end
|
100
98
|
|
101
99
|
end
|
@@ -3,10 +3,10 @@ require 'inum'
|
|
3
3
|
module ActsAsGravatar
|
4
4
|
module Enums
|
5
5
|
class ImageType < Inum::Base
|
6
|
-
define_enum :
|
7
|
-
define_enum :
|
8
|
-
define_enum :
|
9
|
-
define_enum :
|
6
|
+
define_enum :JPG
|
7
|
+
define_enum :JPEG
|
8
|
+
define_enum :GIF
|
9
|
+
define_enum :PNG
|
10
10
|
end
|
11
11
|
end
|
12
|
-
end
|
12
|
+
end
|
@@ -6,23 +6,30 @@ module ActsAsGravatar
|
|
6
6
|
|
7
7
|
# This class provide some utils of gravatar.
|
8
8
|
class Gravatar
|
9
|
-
|
10
|
-
|
9
|
+
PROFILE_URL = 'http://www.gravatar.com/'
|
10
|
+
IMAGE_URL = 'http://www.gravatar.com/avatar/'
|
11
|
+
IMAGE_URL_SSL = 'https://secure.gravatar.com/avatar/'
|
12
|
+
|
11
13
|
|
12
14
|
# Generate a URL of Gravatar image.
|
13
|
-
# @If use a default of gravatar(without email), set nil.
|
14
15
|
#
|
15
|
-
# @
|
16
|
-
# @
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
16
|
+
# @example
|
17
|
+
# generate_image 'nyarukosan@nyaruko.com', {
|
18
|
+
# :default_image => nil, # default_image.(URL or gravatar default image param.)
|
19
|
+
# :force_default => false, # force the default image.
|
20
|
+
# :image_type => ActsAsGravatar::Enums::ImageType::PNG, # image_type. (JPG/JPEG/GIF/PNG)
|
21
|
+
# :rating => ActsAsGravatar::Enums::Rating::PG, # rating. (G/PG/R/X)
|
22
|
+
# :secure => false, # secure protocol. (https).
|
23
|
+
# :size => 80, # image size.
|
24
|
+
# }
|
25
|
+
#
|
26
|
+
# @param email [String] Email.
|
27
|
+
# @param options [Hash] Options of gravatar.
|
21
28
|
#
|
22
29
|
# @return [String] Url of Gravatar image.
|
23
|
-
def self.
|
24
|
-
url =
|
25
|
-
opt =
|
30
|
+
def self.generate_image(email, options = {})
|
31
|
+
url = generate_image_base_url(email, options)
|
32
|
+
opt = generate_image_options(options)
|
26
33
|
|
27
34
|
if opt
|
28
35
|
"#{url}?#{opt}"
|
@@ -31,65 +38,53 @@ module ActsAsGravatar
|
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
34
|
-
# Generate a
|
35
|
-
# @If use a default of gravatar(without email), set nil.
|
41
|
+
# Generate a URL of Gravatar profile.
|
36
42
|
#
|
37
|
-
# @
|
38
|
-
# @
|
39
|
-
# @param size [Integer] Size of Icon.
|
40
|
-
# @param default_image [String] Url of default image.
|
41
|
-
# @param rating [ActsAsGravatar::Enums::Rating] Rating of image.
|
42
|
-
# @param image_type [ActsAsGravatar::Enums::ImageType] Type of image.
|
43
|
-
# @param option [Hash] option of attribute.
|
43
|
+
# @example
|
44
|
+
# generate_profile 'nyarukosan@nyaruko.com'
|
44
45
|
#
|
45
|
-
# @
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
"<img src=\"#{image}\" #{attrs.join(' ')}>"
|
46
|
+
# @param email [String] Email.
|
47
|
+
# @param options [Hash] Options of gravatar.(There are none now.)
|
48
|
+
#
|
49
|
+
# @return [String] Url of Gravatar profile.
|
50
|
+
def self.generate_profile(email, options = {})
|
51
|
+
generate_profile_base_url(email, options)
|
54
52
|
end
|
55
53
|
|
56
54
|
private
|
57
55
|
# Generate a base url of Gravatar image.
|
58
56
|
#
|
59
|
-
# @param email
|
60
|
-
# @param
|
61
|
-
# @param image_type [ActsAsGravatar::Enums::ImageType] Type of image.
|
57
|
+
# @param email [String] Email.
|
58
|
+
# @param options [Hash] Options of gravatar image.
|
62
59
|
#
|
63
60
|
# @return [String] Url of Gravatar image.
|
64
|
-
def self.
|
61
|
+
def self.generate_image_base_url(email, options = {})
|
65
62
|
url = []
|
66
63
|
|
67
|
-
if secure
|
68
|
-
url <<
|
64
|
+
if options[:secure]
|
65
|
+
url << IMAGE_URL_SSL
|
69
66
|
else
|
70
|
-
url <<
|
67
|
+
url << IMAGE_URL
|
71
68
|
end
|
72
69
|
|
73
70
|
url << Digest::MD5.hexdigest(email.downcase)
|
74
|
-
|
75
|
-
url << ".#{image_type.to_u}" if image_type
|
71
|
+
url << ".#{options[:image_type].to_u}" if options[:image_type]
|
76
72
|
|
77
73
|
url.join
|
78
74
|
end
|
79
75
|
|
80
76
|
# Generate a options of url.
|
81
77
|
#
|
82
|
-
# @param
|
83
|
-
# @param default_image [String] Url of default image.
|
84
|
-
# @param rating [ActsAsGravatar::Enums::Rating] Rating of image.
|
78
|
+
# @param options [Hash] Options of gravatar image.
|
85
79
|
#
|
86
80
|
# @return [String] Url of Gravatar image. or nil.
|
87
|
-
def self.
|
81
|
+
def self.generate_image_options(options = {})
|
88
82
|
opts = []
|
89
83
|
|
90
|
-
opts << "s=#{size}" if size
|
91
|
-
opts << "d=#{CGI.escape(default_image)}" if default_image
|
92
|
-
opts << "r=#{rating.to_u}" if rating
|
84
|
+
opts << "s=#{options[:size]}" if options[:size]
|
85
|
+
opts << "d=#{CGI.escape(options[:default_image])}" if options[:default_image]
|
86
|
+
opts << "r=#{options[:rating].to_u}" if options[:rating]
|
87
|
+
opts << 'f=y' if options[:force_default]
|
93
88
|
|
94
89
|
if opts.length < 1
|
95
90
|
nil
|
@@ -97,5 +92,16 @@ module ActsAsGravatar
|
|
97
92
|
opts.join('&')
|
98
93
|
end
|
99
94
|
end
|
95
|
+
|
96
|
+
# Generate a base url of Gravatar profile.
|
97
|
+
#
|
98
|
+
# @param email [String] Email.
|
99
|
+
# @param options [Hash] Options of gravatar profile.
|
100
|
+
#
|
101
|
+
# @return [String] Url of Gravatar image.
|
102
|
+
def self.generate_profile_base_url(email, options = {})
|
103
|
+
"#{PROFILE_URL}#{Digest::MD5.hexdigest(email.downcase)}"
|
104
|
+
end
|
105
|
+
|
100
106
|
end
|
101
107
|
end
|
@@ -2,74 +2,98 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActsAsGravatar::Gravatar do
|
4
4
|
before(:each) do
|
5
|
-
@params = [
|
6
|
-
'nyarukosan@nyaruko.com',
|
7
|
-
false,
|
8
|
-
200,
|
9
|
-
'http://nyaruko.com/',
|
10
|
-
ActsAsGravatar::Enums::Rating::PG,
|
11
|
-
ActsAsGravatar::Enums::ImageType::Jpg
|
12
|
-
]
|
13
5
|
|
14
|
-
@
|
15
|
-
|
6
|
+
# generate_url 'nyarukosan@nyaruko.com', {
|
7
|
+
# :default_image => nil, # default_image.(URL or gravatar default image param.)
|
8
|
+
# :force_default => false, # force the default image.
|
9
|
+
# :image_type => ActsAsGravatar::Enums::ImageType::PNG, # image_type. (JPG/JPEG/GIF/PNG)
|
10
|
+
# :rating => ActsAsGravatar::Enums::Rating::PG, # rating. (G/PG/R/X)
|
11
|
+
# :secure => false, # secure protocol. (https).
|
12
|
+
# :size => 80, # image size.
|
13
|
+
# }
|
16
14
|
|
17
|
-
@
|
18
|
-
@
|
15
|
+
@email = 'nyaruratohotepu@nyaruko.com'
|
16
|
+
@email_md5 = Digest::MD5.hexdigest(@email)
|
17
|
+
|
18
|
+
@url = 'http://nyaruko.com/'
|
19
|
+
@url_enc = CGI.escape(@url)
|
20
|
+
|
21
|
+
@options = {
|
22
|
+
default_image: @url,
|
23
|
+
force_default: true,
|
24
|
+
image_type: ActsAsGravatar::Enums::ImageType::JPG,
|
25
|
+
rating: ActsAsGravatar::Enums::Rating::PG,
|
26
|
+
secure: true,
|
27
|
+
size: 200
|
28
|
+
}
|
29
|
+
|
30
|
+
@profile_url = 'http://www.gravatar.com/'
|
31
|
+
@image_url = 'http://www.gravatar.com/avatar/'
|
32
|
+
@image_url_ssl = 'https://secure.gravatar.com/avatar/'
|
19
33
|
|
20
34
|
|
21
35
|
end
|
22
36
|
|
23
37
|
|
24
|
-
it 'generate
|
25
|
-
url = ActsAsGravatar::Gravatar.
|
38
|
+
it 'generate_profile generate profile.' do
|
39
|
+
url = ActsAsGravatar::Gravatar.generate_profile(@email)
|
40
|
+
expect(url).to eq("#{@profile_url}#{@email_md5}")
|
41
|
+
end
|
26
42
|
|
27
|
-
|
43
|
+
it 'generate_profile generate collect profile with disable option.' do
|
44
|
+
url = ActsAsGravatar::Gravatar.generate_profile(@email, @options)
|
45
|
+
expect(url).to eq("#{@profile_url}#{@email_md5}")
|
28
46
|
end
|
29
47
|
|
30
|
-
it 'generate
|
31
|
-
url = ActsAsGravatar::Gravatar.
|
32
|
-
expect(url).to eq("#{@
|
48
|
+
it 'generate_image generate url.' do
|
49
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email)
|
50
|
+
expect(url).to eq("#{@image_url}#{@email_md5}")
|
33
51
|
end
|
34
52
|
|
35
|
-
it 'generate
|
36
|
-
url = ActsAsGravatar::Gravatar.
|
37
|
-
expect(url).to eq("#{@
|
53
|
+
it 'generate_image generate collect image with disable option.' do
|
54
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, aaaaaa: false, bbbbb: 'bbbbbb', null: nil)
|
55
|
+
expect(url).to eq("#{@image_url}#{@email_md5}")
|
38
56
|
end
|
39
57
|
|
40
|
-
it 'generate url with a
|
41
|
-
url = ActsAsGravatar::Gravatar.
|
42
|
-
expect(url).to eq("#{@
|
58
|
+
it 'generate_image generate url with a secure option.' do
|
59
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, secure: true)
|
60
|
+
expect(url).to eq("#{@image_url_ssl}#{@email_md5}")
|
43
61
|
end
|
44
62
|
|
45
|
-
it 'generate url with a
|
46
|
-
url = ActsAsGravatar::Gravatar.
|
47
|
-
expect(url).to eq("#{@
|
63
|
+
it 'generate_image generate url with a size option.' do
|
64
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, size: 200)
|
65
|
+
expect(url).to eq("#{@image_url}#{@email_md5}?s=200")
|
48
66
|
end
|
49
67
|
|
50
|
-
it 'generate url with a
|
51
|
-
url = ActsAsGravatar::Gravatar.
|
52
|
-
expect(url).to eq("#{@
|
68
|
+
it 'generate_image generate url with a url defualt_image option.' do
|
69
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, default_image: @url)
|
70
|
+
expect(url).to eq("#{@image_url}#{@email_md5}?d=#{@url_enc}")
|
53
71
|
end
|
54
72
|
|
55
|
-
it 'generate url with
|
56
|
-
url = ActsAsGravatar::Gravatar.
|
57
|
-
expect(url).to eq("#{@
|
73
|
+
it 'generate_image generate url with a keyword defualt_image option.' do
|
74
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, default_image: 'mm')
|
75
|
+
expect(url).to eq("#{@image_url}#{@email_md5}?d=mm")
|
58
76
|
end
|
59
77
|
|
60
|
-
it 'generate
|
61
|
-
|
62
|
-
expect(
|
78
|
+
it 'generate_image generate url with a rating option.' do
|
79
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, rating: ActsAsGravatar::Enums::Rating::PG)
|
80
|
+
expect(url).to eq("#{@image_url}#{@email_md5}?r=pg")
|
63
81
|
end
|
64
82
|
|
65
|
-
it 'generate
|
66
|
-
|
67
|
-
expect(
|
83
|
+
it 'generate_image generate url with a rating option.' do
|
84
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, image_type: ActsAsGravatar::Enums::ImageType::JPG)
|
85
|
+
expect(url).to eq("#{@image_url}#{@email_md5}.jpg")
|
68
86
|
end
|
69
87
|
|
70
|
-
it 'generate
|
71
|
-
|
72
|
-
expect(
|
88
|
+
it 'generate_image generate url with a force_default option.' do
|
89
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, force_default: true)
|
90
|
+
expect(url).to eq("#{@image_url}#{@email_md5}?f=y")
|
73
91
|
end
|
92
|
+
|
93
|
+
it 'generate_image generate url with all option.' do
|
94
|
+
url = ActsAsGravatar::Gravatar.generate_image(@email, @options)
|
95
|
+
expect(url).to eq("#{@image_url_ssl}#{@email_md5}.jpg?s=200&d=#{@url_enc}&r=pg&f=y")
|
96
|
+
end
|
97
|
+
|
74
98
|
end
|
75
99
|
|
@@ -9,6 +9,15 @@ describe ActsAsGravatar do
|
|
9
9
|
|
10
10
|
ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => test_db
|
11
11
|
ActiveRecord::Base.connection.execute 'CREATE TABLE tests(id integer not null primary key, email string)'
|
12
|
+
|
13
|
+
@default_option ={
|
14
|
+
:column=>:email,
|
15
|
+
:secure=>false,
|
16
|
+
:size=>nil,
|
17
|
+
:default_image=>nil,
|
18
|
+
:rating=>nil,
|
19
|
+
:image_type=>nil
|
20
|
+
}
|
12
21
|
end
|
13
22
|
|
14
23
|
context 'after acts_as_gravatar,' do
|
@@ -23,12 +32,12 @@ describe ActsAsGravatar do
|
|
23
32
|
end
|
24
33
|
end
|
25
34
|
|
26
|
-
it '
|
27
|
-
expect(Test.method_defined?(:
|
35
|
+
it 'gravatar_image exists.' do
|
36
|
+
expect(Test.method_defined?(:gravatar_image))
|
28
37
|
end
|
29
38
|
|
30
|
-
it '
|
31
|
-
expect(Test.method_defined?(:
|
39
|
+
it 'gravatar_profile exists.' do
|
40
|
+
expect(Test.method_defined?(:gravatar_profile))
|
32
41
|
end
|
33
42
|
|
34
43
|
context 'instance of ActiveRecord::Base' do
|
@@ -36,14 +45,14 @@ describe ActsAsGravatar do
|
|
36
45
|
@test_instance = Test.new
|
37
46
|
end
|
38
47
|
|
39
|
-
it '
|
40
|
-
ActsAsGravatar::Gravatar.should_receive(:
|
41
|
-
@test_instance.
|
48
|
+
it 'gravatar_image call ActsAsGravatar.generate_image' do
|
49
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_image).with('nyarukosan@nyaruko.com', @default_option)
|
50
|
+
@test_instance.gravatar_image
|
42
51
|
end
|
43
52
|
|
44
|
-
it '
|
45
|
-
ActsAsGravatar::Gravatar.should_receive(:
|
46
|
-
@test_instance.
|
53
|
+
it 'gravatar_profile call ActsAsGravatar.generate_profile' do
|
54
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_profile).with('nyarukosan@nyaruko.com', @default_option)
|
55
|
+
@test_instance.gravatar_profile
|
47
56
|
end
|
48
57
|
end
|
49
58
|
end
|
@@ -56,7 +65,7 @@ describe ActsAsGravatar do
|
|
56
65
|
:size => 200,
|
57
66
|
:default_image => 'http://nyaruko.com/',
|
58
67
|
:rating => ActsAsGravatar::Enums::Rating::PG,
|
59
|
-
:image_type => ActsAsGravatar::Enums::ImageType::
|
68
|
+
:image_type => ActsAsGravatar::Enums::ImageType::GIF
|
60
69
|
})
|
61
70
|
|
62
71
|
attr_accessor :email
|
@@ -72,31 +81,64 @@ describe ActsAsGravatar do
|
|
72
81
|
@test_instance = Test.new
|
73
82
|
end
|
74
83
|
|
75
|
-
it 'gravatar_url call ActsAsGravatar.
|
76
|
-
ActsAsGravatar::Gravatar.should_receive(:
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
84
|
+
it 'gravatar_url call ActsAsGravatar.generate_image' do
|
85
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_image).with(
|
86
|
+
"nyarukosan@nyaruko.com",
|
87
|
+
{
|
88
|
+
:column => :email,
|
89
|
+
:secure => true,
|
90
|
+
:size => 200,
|
91
|
+
:default_image => 'http://nyaruko.com/',
|
92
|
+
:rating => ActsAsGravatar::Enums::Rating::PG,
|
93
|
+
:image_type => ActsAsGravatar::Enums::ImageType::GIF
|
94
|
+
}
|
95
|
+
)
|
96
|
+
@test_instance.gravatar_image
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'gravatar_image call ActsAsGravatar.generate_image with merged option.' do
|
100
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_image).with(
|
101
|
+
"nyarukosan@nyaruko.com",
|
102
|
+
{
|
103
|
+
:column => :email,
|
104
|
+
:secure => true,
|
105
|
+
:size => 200,
|
106
|
+
:default_image => 'mm',
|
107
|
+
:rating => ActsAsGravatar::Enums::Rating::PG,
|
108
|
+
:image_type => ActsAsGravatar::Enums::ImageType::GIF
|
109
|
+
}
|
83
110
|
)
|
111
|
+
@test_instance.gravatar_image :default_image => 'mm'
|
112
|
+
end
|
84
113
|
|
85
|
-
|
114
|
+
it 'gravatar_profile call ActsAsGravatar.generate_profile' do
|
115
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_profile).with(
|
116
|
+
"nyarukosan@nyaruko.com",
|
117
|
+
{
|
118
|
+
:column => :email,
|
119
|
+
:secure => true,
|
120
|
+
:size => 200,
|
121
|
+
:default_image => 'http://nyaruko.com/',
|
122
|
+
:rating => ActsAsGravatar::Enums::Rating::PG,
|
123
|
+
:image_type => ActsAsGravatar::Enums::ImageType::GIF
|
124
|
+
}
|
125
|
+
)
|
126
|
+
@test_instance.gravatar_profile
|
86
127
|
end
|
87
128
|
|
88
|
-
it '
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
129
|
+
it 'gravatar_profile call ActsAsGravatar.generate_profile with merged option.' do
|
130
|
+
ActsAsGravatar::Gravatar.should_receive(:generate_profile).with(
|
131
|
+
"nyarukosan@nyaruko.com",
|
132
|
+
{
|
133
|
+
:column => :email,
|
134
|
+
:secure => false,
|
135
|
+
:size => 888,
|
136
|
+
:default_image => 'http://nyaruko.com/',
|
137
|
+
:rating => ActsAsGravatar::Enums::Rating::PG,
|
138
|
+
:image_type => ActsAsGravatar::Enums::ImageType::GIF
|
139
|
+
}
|
98
140
|
)
|
99
|
-
@test_instance.
|
141
|
+
@test_instance.gravatar_profile :secure => false, :size => 888
|
100
142
|
end
|
101
143
|
end
|
102
144
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_gravatar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Atsushi Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|