app/services/redmine_hooks/base.rb
# frozen_string_literal: true
module RedmineHooks
class Base
attr_reader :object, :payloads
def initialize(object, payloads = {})
@object = object
@payloads = payloads
end
class << self
def call(object, payloads = {})
new(object, payloads).call
end
end
def call
raise NotImplementedError
end
def start_message
raise NotImplementedError
end
private
def logger
RedmineGitHosting.logger
end
def success_message
" [success]\n"
end
def failure_message
" [failure]\n"
end
def log_hook_succeeded
logger.info 'Succeeded!'
end
def log_hook_failed
logger.error 'Failed!'
end
def execute_hook
y = +''
logger.info start_message
y << " - #{start_message} ... "
yield y
y
end
end
end