Merge branch 'refactor-duplication' into 'master'
Remove some code duplication * remove duplicate code in uploaders * remove duplicate code in NotificationHelper * remove duplicate code in Repository Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> See merge request !1800
This commit is contained in:
commit
1328e4b504
|
@ -16,40 +16,28 @@ module NotificationsHelper
|
||||||
def notification_list_item(notification_level, user_membership)
|
def notification_list_item(notification_level, user_membership)
|
||||||
case notification_level
|
case notification_level
|
||||||
when Notification::N_DISABLED
|
when Notification::N_DISABLED
|
||||||
content_tag(:li, class: active_level_for(user_membership, Notification::N_DISABLED)) do
|
update_notification_link(Notification::N_DISABLED, user_membership, 'Disabled', 'microphone-slash')
|
||||||
link_to '#', class: 'update-notification', data: { notification_level: Notification::N_DISABLED } do
|
|
||||||
icon('microphone-slash fw', text: 'Disabled')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
when Notification::N_PARTICIPATING
|
when Notification::N_PARTICIPATING
|
||||||
content_tag(:li, class: active_level_for(user_membership, Notification::N_PARTICIPATING)) do
|
update_notification_link(Notification::N_PARTICIPATING, user_membership, 'Participate', 'volume-up')
|
||||||
link_to '#', class: 'update-notification', data: { notification_level: Notification::N_PARTICIPATING } do
|
|
||||||
icon('volume-up fw', text: 'Participate')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
when Notification::N_WATCH
|
when Notification::N_WATCH
|
||||||
content_tag(:li, class: active_level_for(user_membership, Notification::N_WATCH)) do
|
update_notification_link(Notification::N_WATCH, user_membership, 'Watch', 'eye')
|
||||||
link_to '#', class: 'update-notification', data: { notification_level: Notification::N_WATCH } do
|
|
||||||
icon('eye fw', text: 'Watch')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
when Notification::N_MENTION
|
when Notification::N_MENTION
|
||||||
content_tag(:li, class: active_level_for(user_membership, Notification::N_MENTION)) do
|
update_notification_link(Notification::N_MENTION, user_membership, 'On mention', 'at')
|
||||||
link_to '#', class: 'update-notification', data: { notification_level: Notification::N_MENTION } do
|
|
||||||
icon('at fw', text: 'On mention')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
when Notification::N_GLOBAL
|
when Notification::N_GLOBAL
|
||||||
content_tag(:li, class: active_level_for(user_membership, Notification::N_GLOBAL)) do
|
update_notification_link(Notification::N_GLOBAL, user_membership, 'Global', 'globe')
|
||||||
link_to '#', class: 'update-notification', data: { notification_level: Notification::N_GLOBAL } do
|
|
||||||
icon('globe fw', text: 'Global')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
# do nothing
|
# do nothing
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_notification_link(notification_level, user_membership, title, icon)
|
||||||
|
content_tag(:li, class: active_level_for(user_membership, notification_level)) do
|
||||||
|
link_to '#', class: 'update-notification', data: { notification_level: notification_level } do
|
||||||
|
icon("#{icon} fw", text: title)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def notification_label(user_membership)
|
def notification_label(user_membership)
|
||||||
Notification.new(user_membership).to_s
|
Notification.new(user_membership).to_s
|
||||||
end
|
end
|
||||||
|
|
|
@ -346,8 +346,8 @@ class Repository
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def branch_names_contains(sha)
|
def refs_contains_sha(ref_type, sha)
|
||||||
args = %W(#{Gitlab.config.git.bin_path} branch --contains #{sha})
|
args = %W(#{Gitlab.config.git.bin_path} #{ref_type} --contains #{sha})
|
||||||
names = Gitlab::Popen.popen(args, path_to_repo).first
|
names = Gitlab::Popen.popen(args, path_to_repo).first
|
||||||
|
|
||||||
if names.respond_to?(:split)
|
if names.respond_to?(:split)
|
||||||
|
@ -363,21 +363,12 @@ class Repository
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def branch_names_contains(sha)
|
||||||
|
refs_contains_sha('branch', sha)
|
||||||
|
end
|
||||||
|
|
||||||
def tag_names_contains(sha)
|
def tag_names_contains(sha)
|
||||||
args = %W(#{Gitlab.config.git.bin_path} tag --contains #{sha})
|
refs_contains_sha('tag', sha)
|
||||||
names = Gitlab::Popen.popen(args, path_to_repo).first
|
|
||||||
|
|
||||||
if names.respond_to?(:split)
|
|
||||||
names = names.split("\n").map(&:strip)
|
|
||||||
|
|
||||||
names.each do |name|
|
|
||||||
name.slice! '* '
|
|
||||||
end
|
|
||||||
|
|
||||||
names
|
|
||||||
else
|
|
||||||
[]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def branches
|
def branches
|
||||||
|
|
|
@ -1,26 +1,11 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
|
|
||||||
class AttachmentUploader < CarrierWave::Uploader::Base
|
class AttachmentUploader < CarrierWave::Uploader::Base
|
||||||
|
include UploaderHelper
|
||||||
|
|
||||||
storage :file
|
storage :file
|
||||||
|
|
||||||
def store_dir
|
def store_dir
|
||||||
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def image?
|
|
||||||
img_ext = %w(png jpg jpeg gif bmp tiff)
|
|
||||||
if file.respond_to?(:extension)
|
|
||||||
img_ext.include?(file.extension.downcase)
|
|
||||||
else
|
|
||||||
# Not all CarrierWave storages respond to :extension
|
|
||||||
ext = file.path.split('.').last.downcase
|
|
||||||
img_ext.include?(ext)
|
|
||||||
end
|
|
||||||
rescue
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
|
||||||
def file_storage?
|
|
||||||
self.class.storage == CarrierWave::Storage::File
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
|
|
||||||
class AvatarUploader < CarrierWave::Uploader::Base
|
class AvatarUploader < CarrierWave::Uploader::Base
|
||||||
|
include UploaderHelper
|
||||||
|
|
||||||
storage :file
|
storage :file
|
||||||
|
|
||||||
after :store, :reset_events_cache
|
after :store, :reset_events_cache
|
||||||
|
@ -9,23 +11,6 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
||||||
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def image?
|
|
||||||
img_ext = %w(png jpg jpeg gif bmp tiff)
|
|
||||||
if file.respond_to?(:extension)
|
|
||||||
img_ext.include?(file.extension.downcase)
|
|
||||||
else
|
|
||||||
# Not all CarrierWave storages respond to :extension
|
|
||||||
ext = file.path.split('.').last.downcase
|
|
||||||
img_ext.include?(ext)
|
|
||||||
end
|
|
||||||
rescue
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
|
||||||
def file_storage?
|
|
||||||
self.class.storage == CarrierWave::Storage::File
|
|
||||||
end
|
|
||||||
|
|
||||||
def reset_events_cache(file)
|
def reset_events_cache(file)
|
||||||
model.reset_events_cache if model.is_a?(User)
|
model.reset_events_cache if model.is_a?(User)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
class FileUploader < CarrierWave::Uploader::Base
|
class FileUploader < CarrierWave::Uploader::Base
|
||||||
|
include UploaderHelper
|
||||||
|
|
||||||
storage :file
|
storage :file
|
||||||
|
|
||||||
attr_accessor :project, :secret
|
attr_accessor :project, :secret
|
||||||
|
@ -28,21 +30,4 @@ class FileUploader < CarrierWave::Uploader::Base
|
||||||
def secure_url
|
def secure_url
|
||||||
File.join("/uploads", @secret, file.filename)
|
File.join("/uploads", @secret, file.filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_storage?
|
|
||||||
self.class.storage == CarrierWave::Storage::File
|
|
||||||
end
|
|
||||||
|
|
||||||
def image?
|
|
||||||
img_ext = %w(png jpg jpeg gif bmp tiff)
|
|
||||||
if file.respond_to?(:extension)
|
|
||||||
img_ext.include?(file.extension.downcase)
|
|
||||||
else
|
|
||||||
# Not all CarrierWave storages respond to :extension
|
|
||||||
ext = file.path.split('.').last.downcase
|
|
||||||
img_ext.include?(ext)
|
|
||||||
end
|
|
||||||
rescue
|
|
||||||
false
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Extra methods for uploader
|
||||||
|
module UploaderHelper
|
||||||
|
def image?
|
||||||
|
img_ext = %w(png jpg jpeg gif bmp tiff)
|
||||||
|
if file.respond_to?(:extension)
|
||||||
|
img_ext.include?(file.extension.downcase)
|
||||||
|
else
|
||||||
|
# Not all CarrierWave storages respond to :extension
|
||||||
|
ext = file.path.split('.').last.downcase
|
||||||
|
img_ext.include?(ext)
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def file_storage?
|
||||||
|
self.class.storage == CarrierWave::Storage::File
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,6 +1,6 @@
|
||||||
desc 'Code duplication analyze via flay'
|
desc 'Code duplication analyze via flay'
|
||||||
task :flay do
|
task :flay do
|
||||||
output = %x(bundle exec flay app/ lib/gitlab/)
|
output = %x(bundle exec flay --mass 30 app/ lib/gitlab/)
|
||||||
|
|
||||||
if output.include? "Similar code found"
|
if output.include? "Similar code found"
|
||||||
puts output
|
puts output
|
||||||
|
|
Loading…
Reference in New Issue