Class: Dummer::Generator::Field
- Inherits:
-
Object
- Object
- Dummer::Generator::Field
- Defined in:
- lib/dummer/generator.rb
Class Method Summary collapse
- .field_procs(fields) ⇒ Object
- .format_proc(labeled, delimiter, label_delimiter) ⇒ Object
- .message_proc(fields, labeled, delimiter, label_delimiter) ⇒ Object
- .record_proc(fields) ⇒ Object
- .tag_proc(tag_opts) ⇒ Object
Class Method Details
.field_procs(fields) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/dummer/generator.rb', line 113 def self.field_procs(fields) rand = ::Dummer::Random.new field_procs = {} fields.each do |key, opts| opts = opts.dup type = opts.delete(:type) field_procs[key] = case type when :string rand.string(opts) when :integer rand.integer(opts) when :float rand.float(opts) when :datetime rand.datetime(opts) else raise ConfigError.new("type: `#{type}` is not defined.") end end field_procs end |
.format_proc(labeled, delimiter, label_delimiter) ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/dummer/generator.rb', line 105 def self.format_proc(labeled, delimiter, label_delimiter) if labeled Proc.new {|fields| "#{fields.map {|key, val| "#{key}#{label_delimiter}#{val}" }.join(delimiter)}\n" } else Proc.new {|fields| "#{fields.values.join(delimiter)}\n" } end end |
.message_proc(fields, labeled, delimiter, label_delimiter) ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/dummer/generator.rb', line 77 def self.(fields, labeled, delimiter, label_delimiter) format_proc = format_proc(labeled, delimiter, label_delimiter) record_proc = record_proc(fields) Proc.new { hash = record_proc.call format_proc.call(hash) } end |
.record_proc(fields) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/dummer/generator.rb', line 87 def self.record_proc(fields) field_procs = field_procs(fields) prev_data = {} Proc.new { data = {} field_procs.each do |key, proc| prev = prev_data[key] || -1 data[key] = proc.call(prev) end prev_data = data } end |
.tag_proc(tag_opts) ⇒ Object
101 102 103 |
# File 'lib/dummer/generator.rb', line 101 def self.tag_proc(tag_opts) field_procs({"tag" => tag_opts})["tag"] end |