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
-