Moved to separate Ticket::Number class/adapter.

This commit is contained in:
Martin Edenhofer 2013-08-16 00:21:47 +02:00
parent e4381827ab
commit 521346a650

View file

@ -0,0 +1,58 @@
# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
class Ticket::Number < ApplicationLib
=begin
generate new ticket number
result = Ticket::Number.generate
returns
result = "1234556" # new ticket number
=end
def self.generate
# generate number
(1..50_000).each { |i|
number = adapter.generate
ticket = Ticket.where( :number => number ).first
return number if !ticket
}
raise "Can't generate new ticket number!"
end
=begin
check if string contrains a valid ticket number
result = Ticket::Number.check('some string [Ticket#123456]')
returns
result = ticket # Ticket model of ticket with matching ticket number
=end
def self.check(string)
adapter.check(string)
end
def self.adapter
# load backend based on config
adapter_name = Setting.get('ticket_number')
if !adapter_name
raise "Missing ticket_number setting option"
end
adapter = self.load_adapter(adapter_name)
if !adapter
raise "Can't load ticket_number adapter '#{adapter_name}'"
end
adapter
end
end