Commit 9f1728f

mo khan <mo@mokhan.ca>
2015-11-21 21:49:36
extract methods.
1 parent 5fcedc2
Changed files (3)
app/models/csv/exercise.rb
@@ -7,4 +7,8 @@ class Csv::Exercise
       send("#{attribute.first}=", attribute.last)
     end
   end
+
+  def matches?(exercise)
+    name.downcase == exercise.name.downcase
+  end
 end
app/models/csv/import.rb
@@ -33,17 +33,11 @@ class Csv::Import
     training_session = user.begin_workout(
       workout,
       workout_row.date,
-      workout_row.body_weight_lb.to_f)
-    training_session.exercise_sessions.destroy_all
-    workout.exercise_workouts.each do |exercise_workout|
-      row = workout_row.exercises.detect do |x|
-        x.name.downcase == exercise_workout.exercise.name.downcase
-      end
-      training_session.train(
-        exercise_workout.exercise,
-        row.weight_lb,
-        row.sets
-      )
+      workout_row.body_weight_lb
+    )
+    workout.exercises.each do |exercise|
+      exercise_row = workout_row.find(exercise)
+      training_session.train(exercise, exercise_row.weight_lb, exercise_row.sets)
     end
   end
 end
app/models/csv/workout.rb
@@ -10,6 +10,12 @@ class Csv::Workout
     @exercises = []
   end
 
+  def find(exercise)
+    exercises.detect do |x|
+      x.matches?(exercise)
+    end
+  end
+
   def self.map_from(row, user)
     day, month, year = row[0].split("/")
     year = "20#{year}"