Updated

app/builders/reports/deals / metric_builder.rb

A
32 lines of codes
4 methods
6.7 complexity/method
2 churn
26.79 complexity
0 duplications
class Reports::Deals::MetricBuilder < Reports::Deals::BaseReportBuilder
  1. Reports::Deals::MetricBuilder has no descriptive comment
def summary { title: fetch_summary_name, amount_in_cents: count("#{params[:metric]}_sum"),
  1. Reports::Deals::MetricBuilder#summary calls 'params[:metric]' 2 times Locations: 0 1
quantity: count("#{params[:metric]}_count")
  1. Reports::Deals::MetricBuilder#summary calls 'params[:metric]' 2 times Locations: 0 1
} end private def count(metric) builder_class(metric).new(account, builder_params(metric)).aggregate_value end def builder_params(metric) params.merge({ metric: }) end def fetch_summary_name case params[:metric].to_sym when :open_deals I18n.t('activerecord.models.deal.open_deals') when :lost_deals I18n.t('activerecord.models.deal.lost_deals') when :won_deals I18n.t('activerecord.models.deal.won_deals') when :all_deals I18n.t('activerecord.models.deal.created_deals') end end end