Module: DataMaker

Extended by:
ModuleUtilities
Defined in:
lib/data_maker.rb,
lib/data_maker/cn/nin.rb,
lib/data_maker/cn/name.rb,
lib/data_maker/version.rb,
lib/data_maker/cn/address.rb,
lib/data_maker/cn/employment.rb,
lib/data_maker/cn/phone_number.rb,
lib/data_maker/utilities/array_utilities.rb,
lib/data_maker/utilities/module_utilities.rb,
lib/data_maker/validators/chinese_characters.rb,
lib/data_maker/validators/chinese_nin_validator.rb

Defined Under Namespace

Modules: ArrayUtilities, CN, ModuleUtilities, Validators Classes: Config

Constant Summary collapse

BASE_LIB_PATH =
File.expand_path("..", __FILE__)
LETTERS =
[*'a'..'z']
HEX =
%w(0 1 2 3 4 5 6 7 8 9 A B C D E F)
VERSION =
'2.5.2'

Class Method Summary collapse

Methods included from ModuleUtilities

const_missing, k, underscore

Class Method Details

.alphanumerify(masks) ⇒ Object



61
62
63
# File 'lib/data_maker.rb', line 61

def self.alphanumerify(masks)
  letterify(numerify(masks))
end

.hexify(*masks) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/data_maker.rb', line 31

def self.hexify(*masks)
  begin
    if valid_mask?(*masks, /#/)
      masks.flatten.sample.gsub(/#/) { HEX.sample }
    end
  rescue
    return false
  end
end

.letterify(*masks) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/data_maker.rb', line 51

def self.letterify(*masks)
  begin
    if valid_mask?(*masks, /\?/)
      masks.flatten.sample.gsub(/\?/) { LETTERS.sample }
    end
  rescue
    return false
  end
end

.numerify(*masks) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/data_maker.rb', line 41

def self.numerify(*masks)
  begin
    if valid_mask?(*masks, /#/)
      masks.flatten.sample.gsub(/#/) { rand(10).to_s }
    end
  rescue
    return false
  end
end

.translate(*args) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/data_maker.rb', line 65

def self.translate(*args)
  options = args.last.is_a?(Hash) ? args.pop : {}
  options[:locale] ||= DataMaker::Config.locale
  options[:raise] = true
  I18n.translate(*(args.push(options)))
  rescue I18n::MissingTranslationData
  I18n.translate(*(args.push(options.merge(locale: :en))))
end