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