def register(name, options = {}, &block)
      stat = @stats.detect { |s| s[:name] == name }
      raise StandardError, "Stats '#{name}' is already registered." if stat.present?

      options[:primary] ||= false
      options[:priority] ||= LOW_PRIORITY

      @stats.push(name: name,
                  primary: options[:primary],
                  priority: options[:priority],
                  tag: options[:tag],
                  block: block)
    end
def register(name, options = {}, &block)
      stat = @stats.detect { |s| s[:name] == name }
      raise StandardError, "Stats '#{name}' is already registered." if stat.present?

      options[:primary] ||= false
      options[:priority] ||= LOW_PRIORITY

      @stats.push(name: name,
                  primary: options[:primary],
                  priority: options[:priority],
                  tag: options[:tag],
                  block: block)
    end
Public: Initializes the object with an optional stats array

 stats - An array of Hashes to represent a stat object
 Public: Register a stat

 name - The name of the stat
 options - A hash of options
         * primary: Whether the stat is primary or not.
         * priority: The priority of the stat used for render issues.
 block - A block that receive the components to filter out the stat.