Project

General

Profile

Download (1.47 KB) Statistics
| Branch: | Tag: | Revision:
class NameGenerator
GENERATOR_TYPES = {
'Off' => _('Off'),
'Random-based' => _('Random-based'),
'MAC-based' => _('MAC-based')
}.freeze

def self.random_based?
Setting[:name_generator_type] =~ /^Random/i
end
delegate :random_based?, :to => :class

def self.mac_based?
Setting[:name_generator_type] =~ /^MAC/i
end
delegate :mac_based?, :to => :class

def initialize
@mac_generator = Deacon::MacGenerator.new
@random_generator = Deacon::RandomGenerator.new
end

# does respect global setting
def next_mac_name(mac)
if mac_based? && mac
generate_next_mac_name(mac)
else
''
end
end

# does not respect global setting
def generate_next_mac_name(mac)
@mac_generator.generate(mac).join('-').downcase
end

# does respect global setting
def next_random_name
if random_based?
generate_next_random_name
else
''
end
end

# does not respect global setting
def generate_next_random_name
self.register, firstname, lastname = @random_generator.generate(self.register)
[firstname, lastname].join('-').downcase
end

def register
index = Rails.cache.fetch("name_generator_register")
unless index
index = self.register = Deacon::RandomGenerator.random_initial_seed
Rails.logger.debug "Generated new randomized name generator register: #{index}"
end
index
end

def register=(value)
Rails.cache.write("name_generator_register", value)
value
end
end
(27-27/47)