Quick Reference
Quick reference card for FakeDataDSL.
Basic Syntax
SchemaName:
field_name: type
field_name: type(args)
field_name: type? # Nullable
field_name: type optional # Optional
field_name: type unique # Unique
field_name: type if condition # Conditional
Common Types
| Type | Example | Description |
|---|---|---|
uuid |
id: uuid |
UUID identifier |
name |
name: name |
Person name |
email |
email: email |
Email address |
number |
age: number(18..65) |
Number in range |
boolean |
active: boolean |
True/false |
text |
bio: text(100..500) |
Text with length |
date |
birth_date: date |
Calendar date |
array |
tags: array(text, 3..10) |
Array of values |
enum |
status: enum(active, inactive) |
Enumeration |
Behaviors
@latency 100ms # Add delay
@failure 5% # Failure probability
@partial_data 20% # Omit fields sometimes
@randomize_order # Randomize field order
Generation Modes
schema.generate(mode: :random) # Default: realistic data
schema.generate(mode: :edge) # Edge cases
schema.generate(mode: :invalid) # Invalid data
schema.generate(mode: :mixed) # Mix of all
Code Examples
Basic Usage
require 'fake_data_dsl'
registry = FakeDataDSL::Registry.new
registry.load_file('schema.dsl')
schema = registry.schema('User')
record = schema.generate
Multiple Records
records = schema.generate_many(10)
Streaming
schema.generate_many_stream(1000).each do |record|
process(record)
end
Deterministic
FakeDataDSL.configure { |c| c.seed = 12345 }
record = schema.generate # Same data every time
See Also
- Getting Started - Full guide
- DSL Reference - Complete syntax
- Type Reference - All types