# File lib/weights_and_max_depths.rb, line 225
  def initialize args
    @drp_instance = args.drp_instance
    @rule_method = args.rule_method
    @max_depth = @rule_method.max_depth - 1
    arg1, arg2, arg3 = args.user_args
    if arg1.kind_of? Range
      @range = arg1
      if arg2.kind_of? Range
        if (arg3.kind_of? Symbol) or (arg3.kind_of? String)
          @function = arg3
        end
        min = Utils::map(@range, @drp_instance.next_meta_codon)
        max = Utils::map(arg2, @drp_instance.next_meta_codon)
        @range = min..max
      elsif (arg2.kind_of? Symbol) or (arg2.kind_of? String)
        @function = arg2
      end
    else
      raise ArgumentError, 'bad argument to weight_fcd'
    end    
  end