Module: Faker::Cli

Defined in:
lib/faker/cli.rb,
lib/faker/cli/version.rb

Defined Under Namespace

Classes: Field, OptParse

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.generate(options) ⇒ Object



79
80
81
# File 'lib/faker/cli.rb', line 79

def self.generate options
  JSON.generate generate_result options[:numentries], make_fields
end

.generate_result(num, fields) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/faker/cli.rb', line 83

def self.generate_result num, fields
  result = num.times.map do |n|
    obj = {}

    fields.each do |field|
      faker_module = Faker.const_get field.type[0]
      fake = faker_module.send(field.type[1], *field.arguments)
      obj[field.name] = string? int? fake
    end

    obj
  end
end

.int?(arg) ⇒ Boolean

Returns:

  • (Boolean)


97
98
99
100
101
102
103
104
# File 'lib/faker/cli.rb', line 97

def self.int? arg
  begin
    arg = Integer arg
  rescue ArgumentError, TypeError
  end

  arg
end

.make_fieldsObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/faker/cli.rb', line 63

def self.make_fields
  ARGV.map do |arg|
    p = arg.split ":"
    p << "Lorem.word" if p.length == 1

    name = p[0]
    type = p[1].match(/^[^\(\)]+/).to_s.split "."

    argmatch = p[1].match(/\(([^\)]+)\)/)
    args = []
    args = argmatch[1].split(/,\s+/) if argmatch

    Field.new(name, type, args)
  end
end

.runObject



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/faker/cli.rb', line 51

def self.run
  options = OptParse.parse ARGV
  options[:numentries] = OptParse::DEFAULT_NUM unless options.has_key? :numentries

  if ARGV.length < 1 then
    puts OptParse::parser.help
    exit
  end

  puts generate options
end

.string?(arg) ⇒ Boolean

Returns:

  • (Boolean)


106
107
108
109
# File 'lib/faker/cli.rb', line 106

def self.string? arg
  arg = arg.join " " if arg.is_a? Array
  arg
end