Commit dceb3c9
Changed files (4)
app
models
spec
models
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"])