class Datadog::Statsd::Schema::SchemaBuilder
def build
def build @root_namespace end
def initialize
def initialize @transformers = {} @root_namespace = Namespace.new(name: :root) end
def namespace(name, &)
def namespace(name, &) builder = NamespaceBuilder.new(name, @transformers) builder.instance_eval(&) if block_given? namespace_def = builder.build @root_namespace = @root_namespace.add_namespace(namespace_def) end
def transformers(&)
def transformers(&) return @transformers unless block_given? TransformerBuilder.new(@transformers).instance_eval(&) end
def validate!
def validate! errors = @root_namespace.validate_tag_references raise SchemaError, "Schema validation failed: #{errors.join(", ")}" unless errors.empty? end