class TrailGuide::Variants

Attributes

to_a[R]
variants[R]

Public Class Methods

new(*vars) click to toggle source
# File lib/trail_guide/variants.rb, line 7
def initialize(*vars)
  @variants = vars.flatten
end

Public Instance Methods

control() click to toggle source
# File lib/trail_guide/variants.rb, line 15
def control
  variants.find { |var| var.control? }
end
dup(experiment) click to toggle source
# File lib/trail_guide/variants.rb, line 11
def dup(experiment)
  self.class.new(variants.map { |var| var.dup(experiment) })
end
method_missing(meth, *args, &block) click to toggle source
Calls superclass method
# File lib/trail_guide/variants.rb, line 19
def method_missing(meth, *args, &block)
  variant = variants.find { |var| var == meth }
  return variant if variant.present?

  if variants.respond_to?(meth, true)
    result = variants.send(meth, *args, &block)
    if result.is_a?(Array)
      return self.class.new(result)
    else
      return result
    end
  end

  super
end
respond_to_missing?(meth, include_private=false) click to toggle source
# File lib/trail_guide/variants.rb, line 35
def respond_to_missing?(meth, include_private=false)
  variants.find { |var| var == meth }.present? || variants.respond_to?(meth, include_private)
end