class SchleuderGitlabTicketing::Config

Public Class Methods

new(config_path='/etc/schleuder/gitlab.yml') click to toggle source
# File lib/schleuder-gitlab-ticketing/config.rb, line 5
def initialize(config_path='/etc/schleuder/gitlab.yml')
  @config = if File.exists?(config_path)
              YAML.load_file(config_path)
            else
              {}
            end
end

Public Instance Methods

lists() click to toggle source
# File lib/schleuder-gitlab-ticketing/config.rb, line 29
def lists
  @lists ||= read_lists
end
process_list(list_name, mail) click to toggle source

returns true if mail was handled returns 'config-error' if list-config is not properly returns nil if list is not configured to handle gitlab plugin

# File lib/schleuder-gitlab-ticketing/config.rb, line 17
def process_list(list_name, mail)
  if l = lists[list_name]
    if l.configured?
      l.process(mail)
    else
      'config-error'
    end
  else
    nil
  end
end

Private Instance Methods

read_lists() click to toggle source
# File lib/schleuder-gitlab-ticketing/config.rb, line 34
def read_lists
  Hash(@config['lists']).inject({}) do |res,a|
    n,v = a
    v['gitlab'] ||= gitlab
    v['subject_filters'] = Array(v['subject_filters']) + Array(@config['subject_filters'])
    v['sender_filters'] = Array(v['sender_filters']) + Array(@config['sender_filters'])
    res[n] = SchleuderGitlabTicketing::List.new(n,v)
    res
  end
end