Commit 62ae59d
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")