Commit 62ae59d

mo khan <mo@mokhan.ca>
2015-06-02 02:23:06
extract method.
1 parent b7645ba
Changed files (2)
app
models
db
app/models/ios/import.rb
@@ -15,40 +15,28 @@ class Ios::Import
       db[:ZBASEWORKOUT].each do |row|
         workout_name = row[:ZTYPE] == 1 ? "A" : "B"
         workout = program.workouts.find_by(name: workout_name)
-        training_session = user.begin_workout(
-          workout,
-          DateTime.parse(row[:ZLOGDATE]),
-          row[:ZBODYWEIGHT].to_f
-        )
+        occurred_at = DateTime.parse(row[:ZLOGDATE])
+        body_weight = row[:ZBODYWEIGHT].to_f
+        training_session = user.begin_workout(workout, occurred_at, body_weight)
 
-        workout_id = row[:Z_PK]
-        db[:ZEXERCISESETS].where(ZWORKOUT: workout_id).each do |exercise_set_row|
+        db[:ZEXERCISESETS].where(ZWORKOUT: row[:Z_PK]).
+          each do |exercise_set_row|
           exercise = nil
           target_weight = nil
 
-          exercise_id = exercise_set_row[:ZEXERCISETYPE]
-          db[:ZEXERCISE].where(ZTYPE: exercise_id).each do |exercise_row|
+          db[:ZEXERCISE].where(ZTYPE: exercise_set_row[:ZEXERCISETYPE]).
+            each do |exercise_row|
             exercise = exercise_from(exercise_row)
           end
 
-          weight_id = exercise_set_row[:ZWEIGHT]
-          db[:ZWEIGHT].where(Z_PK: weight_id).each do |weight_row|
+          db[:ZWEIGHT].
+            where(Z_PK: exercise_set_row[:ZWEIGHT]).each do |weight_row|
             target_weight = weight_row[:ZVAL]
           end
 
-          sets = []
-          1.upto(5) do |n|
-            column = "ZSET#{n}".to_sym
-            if exercise_set_row[column] && exercise_set_row[column] != -3
-              sets << exercise_set_row[column]
-            end
-          end
           if exercise
-            training_session.train(
-              exercise,
-              target_weight,
-              sets
-            )
+            sets = sets_from(exercise_set_row)
+            training_session.train(exercise, target_weight, sets)
           end
         end
       end
@@ -57,6 +45,13 @@ class Ios::Import
 
   private
 
+  def sets_from(row)
+    (1..5).inject([]) do |memo, n|
+      column = "ZSET#{n}".to_sym
+      memo << row[column] if row[column] && row[column] != -3
+    end
+  end
+
   def database_file(directory)
     File.join(directory, "SLDB.sqlite")
   end
db/seeds.rb
@@ -1,11 +1,6 @@
 # This file should contain all the record creation needed to seed the database with its default values.
 # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
-#
-# Examples:
-#
-#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
-#   Mayor.create(name: 'Emanuel', city: cities.first)
-program =  Program.create!(name: "StrongLifts 5×5")
+program =  Program.create!(name: Program::STRONG_LIFTS)
 squat =  Exercise.create!(name: "Squat")
 bench_press = Exercise.create!(name: "Bench Press")
 barbell_row = Exercise.create!(name: "Barbell Row")