Sha256: 47aa63bcc8bfabcaf13d55d7ad290a509d3e6721ab6a6f89919e5db32e18003b

Contents?: true

Size: 737 Bytes

Versions: 1

Compression:

Stored size: 737 Bytes

Contents

module Modesty
  class Metric

    class << self
      private
      def data_type(name)
      end
    end

    ATTRIBUTES = [
      :description
    ]
    attr_reader *ATTRIBUTES
    attr_reader :slug
    attr_reader :parent
    attr_reader :experiment

    # metrics should know what experiments use them,
    # to enable smart tracking.
    def experiments
      @experiments ||= []
    end

    def initialize(slug, options={})
      @slug = slug
      @parent = options[:parent]
      @experiment = options[:experiment]
    end

    def inspect
      "#<Modesty::Metric[ #{self.slug.inspect} ]>"
    end

    def /(sym)
      Modesty.metrics[@slug/sym] || (raise NoMetricError, "Undefined metric :'#{@slug/sym}'")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
modesty-0.1.0 lib/modesty/metric/base.rb