Commit faadd9e0 authored by Alexis Reigel's avatar Alexis Reigel

use class reader instead of dynamic constant

parent f99b0cc5
...@@ -17,8 +17,10 @@ module TriggerableHooks ...@@ -17,8 +17,10 @@ module TriggerableHooks
class_methods do class_methods do
attr_reader :triggerable_hooks attr_reader :triggerable_hooks
attr_reader :triggers
def hooks_for(trigger) def hooks_for(trigger)
callable_scopes = self::TRIGGERS.keys + [:all] callable_scopes = triggers.keys + [:all]
return none unless callable_scopes.include?(trigger) return none unless callable_scopes.include?(trigger)
public_send(trigger) # rubocop:disable GitlabSecurity/PublicSend public_send(trigger) # rubocop:disable GitlabSecurity/PublicSend
...@@ -28,9 +30,9 @@ module TriggerableHooks ...@@ -28,9 +30,9 @@ module TriggerableHooks
def triggerable_hooks(hooks) def triggerable_hooks(hooks)
triggers = AVAILABLE_TRIGGERS.slice(*hooks) triggers = AVAILABLE_TRIGGERS.slice(*hooks)
const_set('TRIGGERS', triggers) @triggers = triggers
self::TRIGGERS.each do |trigger, event| triggers.each do |trigger, event|
scope trigger, -> { where(event => true) } scope trigger, -> { where(event => true) }
end end
end end
......
...@@ -9,7 +9,7 @@ module TestHooks ...@@ -9,7 +9,7 @@ module TestHooks
end end
def execute def execute
trigger_key = hook.class::TRIGGERS.key(trigger.to_sym) trigger_key = hook.class.triggers.key(trigger.to_sym)
trigger_data_method = "#{trigger}_data" trigger_data_method = "#{trigger}_data"
if trigger_key.nil? || !self.respond_to?(trigger_data_method, true) if trigger_key.nil? || !self.respond_to?(trigger_data_method, true)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
= render partial: 'form', locals: { form: f, hook: @hook } = render partial: 'form', locals: { form: f, hook: @hook }
.form-actions .form-actions
= f.submit 'Save changes', class: 'btn btn-create' = f.submit 'Save changes', class: 'btn btn-create'
= render 'shared/web_hooks/test_button', triggers: SystemHook::TRIGGERS, hook: @hook = render 'shared/web_hooks/test_button', triggers: SystemHook.triggers, hook: @hook
= link_to 'Remove', admin_hook_path(@hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' } = link_to 'Remove', admin_hook_path(@hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' }
%hr %hr
......
...@@ -22,12 +22,12 @@ ...@@ -22,12 +22,12 @@
- @hooks.each do |hook| - @hooks.each do |hook|
%li %li
.controls .controls
= render 'shared/web_hooks/test_button', triggers: SystemHook::TRIGGERS, hook: hook, button_class: 'btn-sm' = render 'shared/web_hooks/test_button', triggers: SystemHook.triggers, hook: hook, button_class: 'btn-sm'
= link_to 'Edit', edit_admin_hook_path(hook), class: 'btn btn-sm' = link_to 'Edit', edit_admin_hook_path(hook), class: 'btn btn-sm'
= link_to 'Remove', admin_hook_path(hook), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-remove btn-sm' = link_to 'Remove', admin_hook_path(hook), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-remove btn-sm'
.monospace= hook.url .monospace= hook.url
%div %div
- SystemHook::TRIGGERS.each_value do |event| - SystemHook.triggers.each_value do |event|
- if hook.public_send(event) - if hook.public_send(event)
%span.label.label-gray= event.to_s.titleize %span.label.label-gray= event.to_s.titleize
%span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'} %span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'}
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
= render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook } = render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook }
= f.submit 'Save changes', class: 'btn btn-create' = f.submit 'Save changes', class: 'btn btn-create'
= render 'shared/web_hooks/test_button', triggers: ProjectHook::TRIGGERS, hook: @hook = render 'shared/web_hooks/test_button', triggers: ProjectHook.triggers, hook: @hook
= link_to 'Remove', project_hook_path(@project, @hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' } = link_to 'Remove', project_hook_path(@project, @hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' }
%hr %hr
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
.col-md-8.col-lg-7 .col-md-8.col-lg-7
%strong.light-header= hook.url %strong.light-header= hook.url
%div %div
- ProjectHook::TRIGGERS.each_value do |event| - ProjectHook.triggers.each_value do |event|
- if hook.public_send(event) - if hook.public_send(event)
%span.label.label-gray.deploy-project-label= event.to_s.titleize %span.label.label-gray.deploy-project-label= event.to_s.titleize
.col-md-4.col-lg-5.text-right-lg.prepend-top-5 .col-md-4.col-lg-5.text-right-lg.prepend-top-5
%span.append-right-10.inline %span.append-right-10.inline
SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'} SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'}
= link_to 'Edit', edit_project_hook_path(@project, hook), class: 'btn btn-sm' = link_to 'Edit', edit_project_hook_path(@project, hook), class: 'btn btn-sm'
= render 'shared/web_hooks/test_button', triggers: ProjectHook::TRIGGERS, hook: hook, button_class: 'btn-sm' = render 'shared/web_hooks/test_button', triggers: ProjectHook.triggers, hook: hook, button_class: 'btn-sm'
= link_to project_hook_path(@project, hook), data: { confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-transparent' do = link_to project_hook_path(@project, hook), data: { confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-transparent' do
%span.sr-only Remove %span.sr-only Remove
= icon('trash') = icon('trash')
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment