Commit 2fb26e0

mo khan <mo@mokhan.ca>
2015-11-22 16:22:49
add chinups and dips.
1 parent 82d3936
Changed files (3)
app/models/workout.rb
@@ -20,6 +20,6 @@ class Workout < ActiveRecord::Base
       exercise: exercise,
       sets: sets,
       repetitions: repetitions
-    )
+    ) unless exercises.include?(exercise)
   end
 end
db/seeds.rb
@@ -1,18 +1,22 @@
 # 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).
-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")
-overhead_press = Exercise.create!(name: "Overhead Press")
-deadlift = Exercise.create!(name: "Deadlift")
+program =  Program.find_or_create_by!(name: Program::STRONG_LIFTS)
+squat =  Exercise.find_or_create_by!(name: "Squat")
+bench_press = Exercise.find_or_create_by!(name: "Bench Press")
+barbell_row = Exercise.find_or_create_by!(name: "Barbell Row")
+overhead_press = Exercise.find_or_create_by!(name: "Overhead Press")
+deadlift = Exercise.find_or_create_by!(name: "Deadlift")
+dips = Exercise.find_or_create_by!(name: "Dips")
+chin_ups = Exercise.find_or_create_by!(name: "Chinups")
 
-workout_a = program.workouts.create(name: "A")
+workout_a = program.workouts.find_or_create_by(name: "A")
 workout_a.add_exercise(squat, sets: 5, repetitions: 5)
 workout_a.add_exercise(bench_press, sets: 5, repetitions: 5)
 workout_a.add_exercise(barbell_row, sets: 5, repetitions: 5)
+workout_a.add_exercise(dips, sets: 3, repetitions: 5)
 
-workout_b = program.workouts.create(name: "B")
+workout_b = program.workouts.find_or_create_by(name: "B")
 workout_b.add_exercise(squat, sets: 5, repetitions: 5)
 workout_b.add_exercise(overhead_press, sets: 5, repetitions: 5)
 workout_b.add_exercise(deadlift, sets: 1, repetitions: 5)
+workout_b.add_exercise(chin_ups, sets: 3, repetitions: 5)
spec/models/workout_spec.rb
@@ -26,5 +26,12 @@ describe Workout do
       subject.add_exercise(exercise)
       expect(subject.exercise_workouts.first.exercise).to eql(exercise)
     end
+
+    it 'does not add a duplicate exercise' do
+      subject.add_exercise(exercise)
+      subject.add_exercise(exercise)
+      expect(subject.exercises.count).to eql(1)
+      expect(subject.exercise_workouts.count).to eql(1)
+    end
   end
 end