Method: Decidim::MetricRegistry#register
- Defined in:
- lib/decidim/metric_registry.rb
permalink #register(metric_name) {|metric_manifest| ... } ⇒ Object
Public: Registers a metric for calculations
metric_name - a symbol representing the name of the metric
Returns nothing. Raises an error if there’s already a metric registered with that metric name.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/decidim/metric_registry.rb', line 32 def register(metric_name) metric_name = metric_name.to_s metric_exists = self.for(metric_name).present? if metric_exists raise( MetricAlreadyRegistered, "There's a metric already registered with the name `:#{metric_name}`, must be unique" ) end metric_manifest = MetricManifest.new(metric_name: metric_name) yield(metric_manifest) metric_manifest.validate! metrics_manifests << metric_manifest end |