class SplitBuilder::Schema

Public Class Methods

define(&block) click to toggle source
# File lib/builder/schema.rb, line 4
def self.define(&block)
  new(&block)
end
new(&block) click to toggle source
# File lib/builder/schema.rb, line 8
def initialize(&block)
  instance_exec(&block)
end

Public Instance Methods

experiments() click to toggle source
# File lib/builder/schema.rb, line 26
def experiments
  @experiments ||= []
end
get_metric_by_name(metric_name) click to toggle source
# File lib/builder/schema.rb, line 14
def get_metric_by_name(metric_name)
  metrics.fetch(metric_name)
end
goals() click to toggle source
# File lib/builder/schema.rb, line 18
def goals
  @goals ||= []
end
metrics() click to toggle source
# File lib/builder/schema.rb, line 22
def metrics
  @metrics ||= {}
end

Private Instance Methods

experiment(experiment_name, &block) click to toggle source
# File lib/builder/schema.rb, line 46
def experiment(experiment_name, &block)
  experiments << Experiment.define(experiment_name, &block)
end
goal(goal_name) click to toggle source

Builder DSL

# File lib/builder/schema.rb, line 34
def goal(goal_name)
  goals << goal_name
end
metric(metric_name, &block) click to toggle source
# File lib/builder/schema.rb, line 38
def metric(metric_name, &block)
  if metrics.key?(metric_name)
    raise MetricAlreadyDefinedError, "Can't define another metric with the same name: #{metric_name.inspect}"
  end

  metrics[metric_name] = Metric.define(metric_name, &block)
end