lib/fnordmetric/context.rb in fnordmetric-1.0.1 vs lib/fnordmetric/context.rb in fnordmetric-1.2.0

- old
+ new

@@ -14,16 +14,17 @@ end def initialize(opts, block) @block = block - @opts = opts + @opts = opts end - def call(event, redis) + def call(event, redis, namespace) @redis = redis - @event = event + @event = event + @namespace = namespace proxy.instance_eval(&@block) rescue Exception => e raise e if ENV['FNORDMETRIC_ENV'] == 'test' puts "error: #{e.message}" puts e.backtrace.push("").join("\n") if ENV['FNORDMETRIC_ENV'] == 'dev' @@ -31,13 +32,17 @@ def proxy @proxy ||= Proxy.new(self) end + def namespace + @namespace + end + def dispatch(method, *args, &block) - if args.size > 0 && @opts[:gauges][args[0]].try(:renderable?) - @opts[:gauges][args.delete_at(0)].execute(method, *args.unshift(self), &block) + if args.size > 0 && gauges[args[0]].try(:renderable?) + gauges[args.delete_at(0)].execute(method, *args.unshift(self), &block) else send(method, *args, &block) end rescue Exception => e raise e if ENV['FNORDMETRIC_ENV'] == 'test' @@ -54,31 +59,38 @@ def session_key @event[:_session_key] end def data - @event + @event end def key(gauge) fetch_gauge(gauge).key end def time @event[:_time].to_i end + def type + @event[:_type].to_sym + end + + def gauges + @namespace.gauges + end + protected - + def fetch_gauge(_gauge) - _gauge.is_a?(FnordMetric::Gauge) ? _gauge : @opts[:gauges].fetch(_gauge) + _gauge.is_a?(FnordMetric::Gauge) ? _gauge : gauges.fetch(_gauge) rescue error! "error: gauge '#{_gauge}' is undefined" end def error!(msg) FnordMetric.error(msg) end end -