I have this class:

    class Report
      include ActiveModel::Model
    
      attr_accessor :start_date, :end_date, :show_sales, :show_daily_active_users,
                    :show_registered_cc, :show_all_time_registered_cc, :show_users
    
      def initialize(params)
        params ||= {}
        @start_date = to_date(params, :start_date, Time.zone.today - 7.days)
        @end_date = to_date params, :end_date, Time.zone.today
        @show_sales = to_b params, :show_sales, true
        @show_daily_active_users = to_b params, :show_daily_active_users, true
        @show_registered_cc = to_b params, :show_registered_cc
        @show_all_time_registered_cc = to_b params, :show_all_time_registered_cc
        @show_users = to_b params, :show_users
      end

      def sales
         (...)
      end

      (...)

      private
    
      def to_date(params, key, default_val)
        if params.key?(key)
          Date.parse(params[key])
        else
          default_val
        end
      end
    
      def to_b(params, key, default_true = false)
        default_val = '1' if default_true
        params.fetch(key, default_val) == '1'
      end
    end

The idea is that I am getting the params from a `GET` request in the form of a Hash (symbol→str) and I want to transform them into dates and booleans. For that reason, I created two private methods `to_date` and `to_b`.

The problem is that Rubocop says that the *Assignment Branch Condition size* for the method `initialize` is too high (15.81 over a limit of 15).

Is there anything I could change to fix that? I don't think that creating a new class just to do that is worth it.