Commit 689e26a

mo khan <mo@mokhan.ca>
2015-05-31 16:56:53
load the appropriate importer based on the contents of the extracted backup file.
1 parent 02366e8
Changed files (2)
app/jobs/upload_stronglifts_backup_job.rb
@@ -17,6 +17,8 @@ class UploadStrongliftsBackupJob < ActiveJob::Base
   end
 
   def importer_for(directory, user, program)
-    Android::Import.new(user, program)
+    [
+      Android::Import.new(user, program)
+    ].find { |x| x.can_parse?(directory) }
   end
 end
app/models/android/import.rb
@@ -7,6 +7,10 @@ class Android::Import
     @program = program
   end
 
+  def can_parse?(directory)
+    File.exist?(database_file(directory))
+  end
+
   def import_from(directory)
     database(directory) do |db|
       db.execute(WORKOUTS_SQL) do |row|
@@ -21,8 +25,12 @@ class Android::Import
 
   private
 
+  def database_file(dir)
+    "#{dir}/stronglifts.db"
+  end
+
   def database(dir)
-    yield SQLite3::Database.new("#{dir}/stronglifts.db")
+    yield SQLite3::Database.new(database_file(dir))
   end
 
   def create_workout_from(workout_row, program)