Commit dceb3c9

mo khan <mo@mokhan.ca>
2015-05-22 20:17:14
parse out the body weight.
1 parent 66e3fc0
app/models/training_session.rb
@@ -4,14 +4,14 @@ class TrainingSession < ActiveRecord::Base
   has_many :exercise_sessions
 
   def self.create_workout_from(workout_row)
-    program = Program.find_by(name: "StrongLifts 5×5")
-    workout = program.workouts.find_by(name: workout_row.workout)
-
     matching_workouts = where(occurred_at: workout_row.date)
     return matching_workouts.first if matching_workouts.any?
 
+    program = Program.find_by(name: "StrongLifts 5×5")
+    workout = program.workouts.find_by(name: workout_row.workout)
+
     transaction do
-      session = create!(workout: workout, occurred_at: workout_row.date)
+      session = create!(workout: workout, occurred_at: workout_row.date, body_weight: workout_row.body_weight.to_f)
 
       workout.exercise_workouts.each_with_index do |exercise_workout, index|
         exercise_row = workout_row.exercises[index]
db/migrate/20150522201542_add_body_weight_to_training_sessions.rb
@@ -0,0 +1,5 @@
+class AddBodyWeightToTrainingSessions < ActiveRecord::Migration
+  def change
+    add_column :training_sessions, :body_weight, :float
+  end
+end
db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20150522183829) do
+ActiveRecord::Schema.define(version: 20150522201542) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -56,6 +56,7 @@ ActiveRecord::Schema.define(version: 20150522183829) do
     t.datetime "updated_at",  null: false
     t.uuid     "workout_id",  null: false
     t.datetime "occurred_at", null: false
+    t.float    "body_weight"
   end
 
   add_index "training_sessions", ["user_id"], name: "index_training_sessions_on_user_id", using: :btree
spec/models/training_session_spec.rb
@@ -40,6 +40,7 @@ describe TrainingSession, type: :model do
       expect(training_session).to be_persisted
       expect(training_session.occurred_at).to eql(workout_row.date)
       expect(training_session.workout).to eql(workout_a)
+      expect(training_session.body_weight).to eql(209.0)
       expect(training_session.exercise_sessions.count).to eql(3)
       expect(training_session.exercise_sessions.map { |x| x.exercise.name }).to match_array(["Squat", "Bench Press", "Barbell Row"])