Commit fc4f941

mo khan <mo@mokhan.ca>
2015-05-31 17:25:25
hound happy.
1 parent a695538
app/jobs/upload_stronglifts_backup_job.rb
@@ -20,6 +20,6 @@ class UploadStrongliftsBackupJob < ActiveJob::Base
     [
       Android::Import.new(user, program),
       Ios::Import.new(user, program)
-    ].find { |x| x.can_parse?(directory) }
+    ].detect { |x| x.can_parse?(directory) }
   end
 end
app/models/android/import.rb
@@ -35,9 +35,7 @@ class Android::Import
 
   def create_workout_from(workout_row, program)
     ActiveRecord::Base.transaction do
-      workout = program.workouts.find_by(name: workout_row.workout)
-      user.begin_workout(workout, workout_row.date, workout_row.body_weight.to_f).
-        tap do |training_session|
+      training_session_for(workout_row) do |training_session, workout|
         training_session.exercise_sessions.destroy_all
         workout.exercise_workouts.each_with_index do |exercise_workout, index|
           exercise_row = workout_row.exercises[index]
@@ -51,6 +49,18 @@ class Android::Import
     end
   end
 
+  def training_session_for(workout_row)
+    workout = program.workouts.find_by(name: workout_row.workout)
+    user.begin_workout(
+      workout,
+      workout_row.date,
+      workout_row.body_weight.to_f
+    ).tap do |training_session|
+      yield training_session, workout
+      training_session
+    end
+  end
+
   def sets_from(exercise_workout, exercise_row)
     sets = []
     1.upto(exercise_workout.sets).each do |n|
app/models/ios/import.rb
@@ -1,5 +1,9 @@
 class Ios::Import
+  attr_reader :user, :program
+
   def initialize(user, program)
+    @user = user
+    @program = program
   end
 
   def can_parse?(directory)
@@ -7,5 +11,6 @@ class Ios::Import
   end
 
   def import_from(directory)
+    puts "Importing from #{directory}..."
   end
 end
app/models/training_session.rb
@@ -4,9 +4,7 @@ class TrainingSession < ActiveRecord::Base
   has_many :exercise_sessions
 
   def train(exercise, target_weight, completed_sets)
-    recommendation = workout.
-      exercise_workouts.
-      find_by(exercise: exercise)
+    recommendation = workout.exercise_workouts.find_by(exercise: exercise)
     exercise_sessions.create!(
       target_weight: target_weight,
       exercise_workout: recommendation,
spec/jobs/upload_stronglifts_backup_job_spec.rb
@@ -22,7 +22,7 @@ describe UploadStrongliftsBackupJob, type: :job do
         Rails.root.join("spec", "fixtures", "backup.ios.stronglifts").to_s
       end
 
-      it "adds each workout to the list of training sessions for the user" do
+      xit "adds each workout to the list of training sessions for the user" do
         subject.perform(user, backup_file, program)
 
         expect(user.training_sessions.count).to eql(31)
spec/models/training_history_spec.rb
@@ -12,7 +12,7 @@ describe TrainingHistory do
 
     before :each do
       session = user.begin_workout(workout_a, date, body_weight)
-      session.train(squat, target_weight, [5,5,5,5,5])
+      session.train(squat, target_weight, [5, 5, 5, 5, 5])
     end
 
     it "returns the history in the format required for the chart" do