Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kazuhiko Shiozaki
gitlab-ce
Commits
2f90e71f
Commit
2f90e71f
authored
Nov 26, 2015
by
Stan Hu
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #9670 from janten/gravatar-retina
Add support for HiDPI displays in gravatar service
parents
1befbbf5
3b717c8a
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
14 deletions
+18
-14
app/helpers/application_helper.rb
app/helpers/application_helper.rb
+4
-4
app/models/user.rb
app/models/user.rb
+2
-2
app/services/gravatar_service.rb
app/services/gravatar_service.rb
+2
-2
spec/helpers/application_helper_spec.rb
spec/helpers/application_helper_spec.rb
+10
-6
No files found.
app/helpers/application_helper.rb
View file @
2f90e71f
...
@@ -68,7 +68,7 @@ module ApplicationHelper
...
@@ -68,7 +68,7 @@ module ApplicationHelper
end
end
end
end
def
avatar_icon
(
user_or_email
=
nil
,
size
=
nil
)
def
avatar_icon
(
user_or_email
=
nil
,
size
=
nil
,
scale
=
2
)
if
user_or_email
.
is_a?
(
User
)
if
user_or_email
.
is_a?
(
User
)
user
=
user_or_email
user
=
user_or_email
else
else
...
@@ -78,12 +78,12 @@ module ApplicationHelper
...
@@ -78,12 +78,12 @@ module ApplicationHelper
if
user
if
user
user
.
avatar_url
(
size
)
||
default_avatar
user
.
avatar_url
(
size
)
||
default_avatar
else
else
gravatar_icon
(
user_or_email
,
size
)
gravatar_icon
(
user_or_email
,
size
,
scale
)
end
end
end
end
def
gravatar_icon
(
user_email
=
''
,
size
=
nil
)
def
gravatar_icon
(
user_email
=
''
,
size
=
nil
,
scale
=
2
)
GravatarService
.
new
.
execute
(
user_email
,
size
)
||
GravatarService
.
new
.
execute
(
user_email
,
size
,
scale
)
||
default_avatar
default_avatar
end
end
...
...
app/models/user.rb
View file @
2f90e71f
...
@@ -637,11 +637,11 @@ class User < ActiveRecord::Base
...
@@ -637,11 +637,11 @@ class User < ActiveRecord::Base
email
.
start_with?
(
'temp-email-for-oauth'
)
email
.
start_with?
(
'temp-email-for-oauth'
)
end
end
def
avatar_url
(
size
=
nil
)
def
avatar_url
(
size
=
nil
,
scale
=
2
)
if
avatar
.
present?
if
avatar
.
present?
[
gitlab_config
.
url
,
avatar
.
url
].
join
[
gitlab_config
.
url
,
avatar
.
url
].
join
else
else
GravatarService
.
new
.
execute
(
email
,
size
)
GravatarService
.
new
.
execute
(
email
,
size
,
scale
)
end
end
end
end
...
...
app/services/gravatar_service.rb
View file @
2f90e71f
class
GravatarService
class
GravatarService
include
Gitlab
::
CurrentSettings
include
Gitlab
::
CurrentSettings
def
execute
(
email
,
size
=
nil
)
def
execute
(
email
,
size
=
nil
,
scale
=
2
)
if
current_application_settings
.
gravatar_enabled?
&&
email
.
present?
if
current_application_settings
.
gravatar_enabled?
&&
email
.
present?
size
=
40
if
size
.
nil?
||
size
<=
0
size
=
40
if
size
.
nil?
||
size
<=
0
sprintf
gravatar_url
,
sprintf
gravatar_url
,
hash:
Digest
::
MD5
.
hexdigest
(
email
.
strip
.
downcase
),
hash:
Digest
::
MD5
.
hexdigest
(
email
.
strip
.
downcase
),
size:
size
,
size:
size
*
scale
,
email:
email
.
strip
email:
email
.
strip
end
end
end
end
...
...
spec/helpers/application_helper_spec.rb
View file @
2f90e71f
...
@@ -95,9 +95,9 @@ describe ApplicationHelper do
...
@@ -95,9 +95,9 @@ describe ApplicationHelper do
end
end
it
'should call gravatar_icon when no User exists with the given email'
do
it
'should call gravatar_icon when no User exists with the given email'
do
expect
(
helper
).
to
receive
(
:gravatar_icon
).
with
(
'foo@example.com'
,
20
)
expect
(
helper
).
to
receive
(
:gravatar_icon
).
with
(
'foo@example.com'
,
20
,
2
)
helper
.
avatar_icon
(
'foo@example.com'
,
20
)
helper
.
avatar_icon
(
'foo@example.com'
,
20
,
2
)
end
end
describe
'using a User'
do
describe
'using a User'
do
...
@@ -150,15 +150,19 @@ describe ApplicationHelper do
...
@@ -150,15 +150,19 @@ describe ApplicationHelper do
stub_gravatar_setting
(
plain_url:
'http://example.local/?s=%{size}&hash=%{hash}'
)
stub_gravatar_setting
(
plain_url:
'http://example.local/?s=%{size}&hash=%{hash}'
)
expect
(
gravatar_icon
(
user_email
,
20
)).
expect
(
gravatar_icon
(
user_email
,
20
)).
to
eq
(
'http://example.local/?s=
2
0&hash=b58c6f14d292556214bd64909bcdb118'
)
to
eq
(
'http://example.local/?s=
4
0&hash=b58c6f14d292556214bd64909bcdb118'
)
end
end
it
'accepts a custom size argument'
do
it
'accepts a custom size argument'
do
expect
(
helper
.
gravatar_icon
(
user_email
,
64
)).
to
include
'?s=
64
'
expect
(
helper
.
gravatar_icon
(
user_email
,
64
)).
to
include
'?s=
128
'
end
end
it
'defaults size to 40 when given an invalid size'
do
it
'defaults size to 40@2x when given an invalid size'
do
expect
(
helper
.
gravatar_icon
(
user_email
,
nil
)).
to
include
'?s=40'
expect
(
helper
.
gravatar_icon
(
user_email
,
nil
)).
to
include
'?s=80'
end
it
'accepts a scaling factor'
do
expect
(
helper
.
gravatar_icon
(
user_email
,
40
,
3
)).
to
include
'?s=120'
end
end
it
'ignores case and surrounding whitespace'
do
it
'ignores case and surrounding whitespace'
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment