class Imasgen::GeneratorBase
Attributes
auto_reset[RW]
be_strict[R]
Public Class Methods
getyaml()
click to toggle source
# File lib/imasgen/generator_base.rb, line 72 def self.getyaml throw NotImplementedError end
new()
click to toggle source
# File lib/imasgen/generator_base.rb, line 8 def initialize @namedic = [] @used_pair = [] @auto_reset = false @be_strict = true end
Public Instance Methods
be_strict=(val)
click to toggle source
# File lib/imasgen/generator_base.rb, line 27 def be_strict=(val) @be_strict = val reset end
hotchpotch()
click to toggle source
# File lib/imasgen/generator_base.rb, line 49 def hotchpotch # hotchpotch mode item = lambda { @basedic ||= @be_strict ? @namedic.select {|i| i[:last_name] != '' && i[:first_name] != ''} : @namedic # make shuffle dictionary @first_names ||= @basedic.map {|i| {first_name: i[:first_name], first_name_furigana: i[:first_name_furigana]}} @last_names ||= @basedic.map {|i| {last_name: i[:last_name], last_name_furigana: i[:last_name_furigana]}} # shuffle!! @comb ||= @first_names.product(@last_names).map {|i| i[0].merge(i[1])} # get non duplicate item ret = @comb.reject {|i| i[:used]}.sample return ret unless ret.nil? if @auto_reset @comb.each {|i| i.delete(:used)} ret else raise StandardError.new('Already used all name pairs.') end }.call item[:used] = true Imasgen::Name.new(item) end
name()
click to toggle source
# File lib/imasgen/generator_base.rb, line 32 def name # return random item.(no shuffle in first name and last name) item = lambda { @basedic ||= @be_strict ? @namedic.select {|i| i[:last_name] != '' && i[:first_name] != ''} : @namedic retval = @basedic.reject {|i| i[:used]}.sample raise StandardError.new('Already used all name pairs.') if retval.nil? && !@auto_reset if retval.nil? && @auto_reset # delete used flag @basedic.each {|i| i.delete(:used)} retval = @namedic.sample end retval }.call item[:used] = true Imasgen::Name.new(item) end
reset()
click to toggle source
# File lib/imasgen/generator_base.rb, line 19 def reset # reset dictonary cache @basedic = nil @first_names = nil @last_names = nil @comb = nil end
unique()
click to toggle source
# File lib/imasgen/generator_base.rb, line 15 def unique @unique_i ||= self.class.new end