Updated

app/builders/reports/deals / base_report_builder.rb

C
42 lines of codes
3 methods
3.9 complexity/method
2 churn
11.58 complexity
16 duplications
class Reports::Deals::BaseReportBuilder
  1. Reports::Deals::BaseReportBuilder has no descriptive comment
def initialize(account, params)
  1. Identical code found in 3 nodes Locations: 0 1 2
raise ArgumentError, 'account is required' unless account raise ArgumentError, 'params is required' unless params @account = account @params = params end private attr_reader :account, :params COUNT_METRICS = %w[ won_deals_count lost_deals_count open_deals_count all_deals_count ].freeze SUM_METRICS = %w[ won_deals_sum lost_deals_sum open_deals_sum all_deals_sum ].freeze def builder_class(metric) case metric
  1. Reports::Deals::BaseReportBuilder#builder_class is controlled by argument 'metric'
when *COUNT_METRICS Reports::Deals::Timeseries::CountReportBuilder when *SUM_METRICS Reports::Deals::Timeseries::SumReportBuilder end end def log_invalid_metric Rails.logger.error "ReportBuilder: Invalid metric - #{params[:metric]}" {} end end