How to refactor already simple ruby code

user2914144

I want to refactor this ruby code

class UtilService


  def summer_start
    ...
  end

  def summer_end
    ...
  end 

  def calc(date, charge, quantity, winter_rate, winter_service_charge, summer_rate)
    if date < summer_start || date > summer_end
      chargeamt = quantity * winter_rate + winter_service_charge
    else
      chargeamt = quantity * summer_rate
    end
    chargeamt
  end
end

Since charge isn't being used I know I can get rid of that but other than getting rid of that one parameter I can't think of what else I can actually do.

I was also thinking of breaking up 'calc' into different methods

class UtilService
  def summer_start
  end

  def summer_end
  end

  def calc_summer_rate(date, quantity, summer_rate)
    if date > summer_start || date < summer_end
      chargeamt = quantity * summer_rate
    end
    chargeamt
  end

  def calc_winter_rate(date, quantity, winter_rate, winter_service_charge)
    if date < summer_start || date > summer_end
      chargeamt = quantity * winter_rate + winter_service_charge
    end
    chargeamt
  end

end

But it doesn't seem like my refactoring makes much sense.

Gerry

I don't see big refactoring needed, maybe just moving the is summer? logic to another method and removing unnecesary chargeamt variable; something like this:

class UtilService
  def summer_start
  end

  def summer_end
  end

  def calc(date, quantity, winter_rate, winter_service_charge, summer_rate)
    if summer?(date)
      quantity * winter_rate + winter_service_charge
    else
      quantity * summer_rate
    end
  end

  private
  def summer?(date)
    date > summer_start || date < summer_end
  end
end

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Refactor Ruby code for Luhn algorithm

From Dev

How to refactor this java code

From Dev

How to refactor this code in Haskell

From Dev

How to refactor this code in Haskell

From Dev

How to refactor this messy code

From Dev

Refactor ruby code based on the admin present or not

From Dev

How to refactor this Redux connect code?

From Dev

How to refactor this clojure / riemann code

From Dev

How to refactor this clojure / riemann code

From Dev

Ruby: How do I refactor code from two module class methods?

From Java

How to refactor a simple long case statement

From Dev

How to refactor long if/return statements in Ruby?

From Dev

How to refactor in Sublime Text? (Ruby, Rails, JavaScript)

From Dev

How to refactor each function with map in Ruby?

From Dev

How to refactor method with multiple boolean variables in Ruby

From Dev

How to refactor in Sublime Text? (Ruby, Rails, JavaScript)

From Dev

How to refactor long if/return statements in Ruby?

From Dev

How to refactor each function with map in Ruby?

From Dev

How to refactor this code OOP code for an interview?

From Java

Java: How to refactor my code to reduce redundancy?

From Dev

How to refactor "using" statement to avoid code duplication?

From Dev

how to refactor repeated code from similar tasks?

From Dev

How to refactor common Jenkins JobDSL code?

From Dev

How can I refactor this code to be more concise?

From Dev

How to refactor a repetitive line of code java

From Dev

How to write tests for legacy code and then refactor it?

From Dev

How to refactor code to make it functional style?

From Dev

Unnecessary unboxing in java - how to refactor the code?

From Dev

How to refactor the following code to use q?

Related Related

HotTag

Archive