Module: Faker::ModuleUtils

Included in:
Faker, Address, AddressAU, AddressBR, AddressCA, AddressDA, AddressDE, AddressFR, AddressMX, AddressSE, AddressSN, AddressUK, AddressUS, BaconIpsum, Company, CompanyIT, CompanySE, Conference, DizzleIpsum, Education, Geolocation, HTMLIpsum, HealthcareIpsum, HipsterIpsum, Identification, IdentificationES, IdentificationESCO, Internet, InternetSE, Job, JobFR, Locale, Lorem, LoremAR, LoremCN, LoremFR, Movie, Name, NameBR, NameCN, NameCS, NameDA, NameDE, NameFR, NameGA, NameIT, NameJA, NameKR, NameMX, NameNB, NamePH, NameRU, NameSE, NameSN, NameTH, NameVN, NatoAlphabet, PhoneNumber, PhoneNumberAU, PhoneNumberDA, PhoneNumberDE, PhoneNumberFR, PhoneNumberIT, PhoneNumberMX, PhoneNumberSE, PhoneNumberSG, PhoneNumberSN, Product, SSN, SSNSE, Skill, String, Time, Unit, UnitEnglish, UnitMetric, Venue
Defined in:
lib/ffaker/utils/module_utils.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) const_missing(const_name)



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ffaker/utils/module_utils.rb', line 9

def const_missing(const_name)
  if const_name =~ /[a-z]/ # Not a constant, probably a class/module name.
    super const_name
  else
    mod_name = ancestors.first.to_s.split("::").last
    data_path = "#{Faker::BASE_LIB_PATH}/ffaker/data/#{underscore(mod_name)}/#{underscore(const_name.to_s)}"
    data = k File.read(data_path).split("\n")
    const_set const_name, data
    data
  end
end

- (Object) k(arg)



5
6
7
# File 'lib/ffaker/utils/module_utils.rb', line 5

def k(arg)
  Faker::ArrayUtils.const_array(arg)
end

- (Object) underscore(string)



21
22
23
24
25
26
27
# File 'lib/ffaker/utils/module_utils.rb', line 21

def underscore(string)
  string.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end