fogged 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/jobs/fogged/resources/aws_thumbnail_job.rb +32 -0
  3. data/app/jobs/fogged/resources/zencoder_poll_job.rb +11 -13
  4. data/app/models/fogged/resource.rb +39 -35
  5. data/app/models/fogged/resources/aws_encoder.rb +20 -8
  6. data/app/models/fogged/resources/encoder.rb +1 -1
  7. data/lib/fogged.rb +53 -38
  8. data/lib/fogged/engine.rb +0 -6
  9. data/lib/fogged/{acts_as_having_many_resources.rb → has_many_resources.rb} +3 -3
  10. data/lib/fogged/{acts_as_having_one_resource.rb → has_one_resource.rb} +3 -3
  11. data/lib/fogged/utils.rb +26 -0
  12. data/lib/fogged/version.rb +1 -1
  13. data/lib/fogged/with_directory.rb +9 -0
  14. data/lib/fogged/zencoder_additional_outputs.rb +7 -0
  15. data/test/controllers/concerns/resource_test_helper.rb +6 -0
  16. data/test/controllers/fogged/resources_controller/confirm_test.rb +7 -7
  17. data/test/controllers/fogged/resources_controller/create_test.rb +4 -6
  18. data/test/controllers/fogged/resources_controller/destroy_test.rb +4 -3
  19. data/test/controllers/fogged/resources_controller/show_test.rb +6 -6
  20. data/test/controllers/fogged/resources_controller/update_test.rb +3 -5
  21. data/test/dummy/app/models/image.rb +1 -1
  22. data/test/dummy/app/models/movie.rb +1 -1
  23. data/test/dummy/config/environments/production.rb +1 -1
  24. data/test/dummy/config/environments/test.rb +2 -1
  25. data/test/dummy/db/schema.rb +5 -5
  26. data/test/dummy/db/test.sqlite3 +0 -0
  27. data/test/dummy/log/development.log +234 -0
  28. data/test/dummy/log/test.log +61126 -0
  29. data/test/dummy/test/controllers/resources_controller/index_test.rb +5 -7
  30. data/test/dummy/test/models/image_test.rb +11 -0
  31. data/test/fixtures/fogged/resources.yml +18 -6
  32. data/test/fogged_test.rb +20 -0
  33. data/test/jobs/fogged/resources/aws_thumbnail_job_test.rb +52 -0
  34. data/test/jobs/fogged/resources/zencoder_poll_job_test.rb +8 -4
  35. data/test/models/fogged/resource_test.rb +5 -5
  36. data/test/models/fogged/resources/aws_encoder_test.rb +110 -15
  37. data/test/models/fogged/resources/encoder_test.rb +1 -1
  38. data/test/test_helper.rb +9 -6
  39. metadata +27 -11
  40. data/test/dummy/db/development.sqlite3 +0 -0
  41. data/test/integration/navigation_test.rb +0 -10
@@ -1,5 +1,5 @@
1
1
  module Fogged
2
- module ActsAsHavingManyResources
2
+ module HasManyResources
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  module ClassMethods
@@ -8,7 +8,7 @@ module Fogged
8
8
  :class_name => "Fogged::Resource"
9
9
  }
10
10
 
11
- def acts_as_having_many_resources(*args)
11
+ def has_many_resources(*args)
12
12
  options = args.extract_options!
13
13
  unless options.include?(:through)
14
14
  fail(ArgumentError, ":through option is mandatory")
@@ -27,4 +27,4 @@ module Fogged
27
27
  end
28
28
  end
29
29
 
30
- ActiveRecord::Base.send(:include, Fogged::ActsAsHavingManyResources)
30
+ ActiveRecord::Base.send(:include, Fogged::HasManyResources)
@@ -1,5 +1,5 @@
1
1
  module Fogged
2
- module ActsAsHavingOneResource
2
+ module HasOneResource
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  module ClassMethods
@@ -8,7 +8,7 @@ module Fogged
8
8
  :class_name => "Fogged::Resource"
9
9
  }
10
10
 
11
- def acts_as_having_one_resource(*args)
11
+ def has_one_resource(*args)
12
12
  belongs_to :resource, DEFAULT_OPTIONS.merge(args.extract_options!)
13
13
  validate :_check_resource, :unless => "resource.blank?"
14
14
 
@@ -31,4 +31,4 @@ module Fogged
31
31
  end
32
32
  end
33
33
 
34
- ActiveRecord::Base.send(:include, Fogged::ActsAsHavingOneResource)
34
+ ActiveRecord::Base.send(:include, Fogged::HasOneResource)
@@ -0,0 +1,26 @@
1
+ module Fogged
2
+ def self.directory_public_url(directory_name)
3
+ case Fogged.provider
4
+ when :aws
5
+ Fogged.storage.request_url(:bucket_name => directory_name)
6
+ else
7
+ fail(ArgumentError, "Provider #{Fogged.provider} is not available!")
8
+ end
9
+ end
10
+
11
+ def self.resources_public_url
12
+ directory_public_url(Fogged.resources.key)
13
+ end
14
+
15
+ def self.file_public_url(key, directory = Fogged.resources.key)
16
+ Fogged.storage.try(
17
+ :request_url,
18
+ :bucket_name => directory,
19
+ :object_name => key
20
+ )
21
+ end
22
+
23
+ def self.file_exists?(key)
24
+ Fogged.resources.files.head(key)
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Fogged
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,9 @@
1
+ module Fogged
2
+ def self.with_directory(directory_name)
3
+ old_resources = Fogged._resources
4
+ Fogged._resources = Fogged.storage.directories.get(directory_name)
5
+ yield
6
+ ensure
7
+ Fogged._resources = old_resources
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module Fogged
2
+ mattr_accessor :zencoder_additional_outputs_block
3
+
4
+ def self.zencoder_additional_outputs(&block)
5
+ Fogged.zencoder_additional_outputs_block = block
6
+ end
7
+ end
@@ -2,6 +2,12 @@ module ResourceTestHelper
2
2
  extend ActiveSupport::Concern
3
3
  include JsonTestHelper
4
4
 
5
+ included do
6
+ setup do
7
+ @routes = Fogged::Engine.routes
8
+ end
9
+ end
10
+
5
11
  private
6
12
 
7
13
  def assert_json_resource(resource)
@@ -6,9 +6,9 @@ module Fogged
6
6
  include ResourceTestHelper
7
7
 
8
8
  test "should confirm resource" do
9
- resource = fogged_resources(:resource_png)
9
+ resource = fogged_resources(:resource_png_1)
10
10
 
11
- put :confirm, :id => resource, :use_route => :fogged
11
+ put :confirm, :id => resource
12
12
 
13
13
  assert_json_resource(resource.reload)
14
14
  assert_equal 800, resource.width
@@ -20,16 +20,16 @@ module Fogged
20
20
  in_a_fork do
21
21
  require "zencoder"
22
22
  require "delayed_job_active_record"
23
-
24
- Fogged.zencoder_enabled = true
23
+ Rails.application.config.active_job.queue_adapter = :delayed_job
24
+ Fogged.configure
25
25
 
26
26
  Zencoder::Job.expects(:create).returns(
27
27
  OpenStruct.new(:body => create_output)
28
28
  )
29
- resource = fogged_resources(:resource_mov)
29
+ resource = fogged_resources(:resource_mov_1)
30
30
 
31
31
  assert_difference("Delayed::Job.count") do
32
- put :confirm, :id => resource, :use_route => :fogged
32
+ put :confirm, :id => resource
33
33
  end
34
34
 
35
35
  assert_json_resource(resource.reload)
@@ -40,7 +40,7 @@ module Fogged
40
40
 
41
41
  test "should not confirm resource with invalid id" do
42
42
  assert_raise(ActiveRecord::RecordNotFound) do
43
- put :confirm, :id => 123456, :use_route => :fogged
43
+ put :confirm, :id => 123456
44
44
  end
45
45
  end
46
46
 
@@ -16,7 +16,7 @@ module Fogged
16
16
 
17
17
  test "should create resource" do
18
18
  assert_difference("Resource.count") do
19
- post :create, :resource => @resource_params, :use_route => :fogged
19
+ post :create, :resource => @resource_params
20
20
  end
21
21
 
22
22
  assert_json_resource(Resource.last)
@@ -26,7 +26,7 @@ module Fogged
26
26
  test "should not create resource without resource parameter" do
27
27
  assert_no_difference("Resource.count") do
28
28
  assert_raise(ActionController::ParameterMissing) do
29
- post :create, :use_route => :fogged
29
+ post :create
30
30
  end
31
31
  end
32
32
  end
@@ -36,8 +36,7 @@ module Fogged
36
36
  assert_no_difference("Resource.count") do
37
37
  assert_raise(ActionController::ParameterMissing) do
38
38
  post :create,
39
- :resource => @resource_params.merge(field => ""),
40
- :use_route => :fogged
39
+ :resource => @resource_params.merge(field => "")
41
40
  end
42
41
  end
43
42
  end
@@ -47,8 +46,7 @@ module Fogged
47
46
  assert_no_difference("Resource.count") do
48
47
  assert_raise(ActiveRecord::RecordInvalid) do
49
48
  post :create,
50
- :resource => @resource_params.merge(:filename => "bar"),
51
- :use_route => :fogged
49
+ :resource => @resource_params.merge(:filename => "bar")
52
50
  end
53
51
  end
54
52
  end
@@ -3,15 +3,16 @@ require "test_helper"
3
3
  module Fogged
4
4
  class ResourcesControllerDestroyTest < ActionController::TestCase
5
5
  tests ResourcesController
6
+ include ResourceTestHelper
6
7
 
7
8
  def setup
8
9
  super
9
- @resource = fogged_resources(:resource_png)
10
+ @resource = fogged_resources(:resource_png_1)
10
11
  end
11
12
 
12
13
  test "should destroy resource" do
13
14
  assert_difference("Resource.count", -1) do
14
- delete :destroy, :id => @resource, :use_route => :fogged
15
+ delete :destroy, :id => @resource
15
16
  end
16
17
 
17
18
  assert_response :no_content
@@ -21,7 +22,7 @@ module Fogged
21
22
  test "should not destroy resource with invalid id" do
22
23
  assert_no_difference("Resource.count") do
23
24
  assert_raise(ActiveRecord::RecordNotFound) do
24
- delete :destroy, :id => 123456, :use_route => :fogged
25
+ delete :destroy, :id => 123456
25
26
  end
26
27
  end
27
28
  end
@@ -7,28 +7,28 @@ module Fogged
7
7
 
8
8
  test "should show resource" do
9
9
  resource = fogged_resources(:resource_text_1)
10
- get :show, :id => resource, :use_route => :fogged
10
+ get :show, :id => resource
11
11
 
12
12
  assert_json_resource(resource)
13
13
  end
14
14
 
15
15
  test "should show video resource" do
16
- resource = fogged_resources(:resource_mov)
17
- get :show, :id => resource, :use_route => :fogged
16
+ resource = fogged_resources(:resource_mov_1)
17
+ get :show, :id => resource
18
18
 
19
19
  assert_json_resource(resource)
20
20
  end
21
21
 
22
22
  test "should show image resource" do
23
- resource = fogged_resources(:resource_png)
24
- get :show, :id => resource, :use_route => :fogged
23
+ resource = fogged_resources(:resource_png_1)
24
+ get :show, :id => resource
25
25
 
26
26
  assert_json_resource(resource)
27
27
  end
28
28
 
29
29
  test "should not show resource with invalid id" do
30
30
  assert_raise(ActiveRecord::RecordNotFound) do
31
- get :show, :id => 1234567890, :use_route => :foggede
31
+ get :show, :id => 1234567890
32
32
  end
33
33
  end
34
34
  end
@@ -7,14 +7,13 @@ module Fogged
7
7
 
8
8
  def setup
9
9
  super
10
- @resource = fogged_resources(:resource_png)
10
+ @resource = fogged_resources(:resource_png_1)
11
11
  end
12
12
 
13
13
  test "should update resource" do
14
14
  put :update,
15
15
  :id => @resource,
16
- :resource => { :name => "Update" },
17
- :use_route => :fogged
16
+ :resource => { :name => "Update" }
18
17
 
19
18
  assert_json_resource(@resource.reload)
20
19
  end
@@ -23,8 +22,7 @@ module Fogged
23
22
  assert_raise(ActiveRecord::RecordNotFound) do
24
23
  put :update,
25
24
  :id => 1234567890,
26
- :resource => { :name => "Update" },
27
- :use_route => :fogged
25
+ :resource => { :name => "Update" }
28
26
  end
29
27
  end
30
28
  end
@@ -1,3 +1,3 @@
1
1
  class Image < ActiveRecord::Base
2
- acts_as_having_one_resource
2
+ has_one_resource
3
3
  end
@@ -1,4 +1,4 @@
1
1
  class Movie < ActiveRecord::Base
2
2
  has_many :movie_fogged_resources
3
- acts_as_having_many_resources :through => :movie_fogged_resources
3
+ has_many_resources :through => :movie_fogged_resources
4
4
  end
@@ -20,7 +20,7 @@ Rails.application.configure do
20
20
  # config.action_dispatch.rack_cache = true
21
21
 
22
22
  # Disable Rails's static asset server (Apache or nginx will already do this).
23
- config.serve_static_assets = false
23
+ config.serve_static_files = false
24
24
 
25
25
  # Compress JavaScripts and CSS.
26
26
  config.assets.js_compressor = :uglifier
@@ -1,4 +1,5 @@
1
1
  Rails.application.configure do
2
+ config.active_support.test_order = :sorted
2
3
  # Settings specified here will take precedence over those in config/application.rb.
3
4
 
4
5
  # The test environment is used exclusively to run your application's
@@ -13,7 +14,7 @@ Rails.application.configure do
13
14
  config.eager_load = false
14
15
 
15
16
  # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_assets = true
17
+ config.serve_static_files = true
17
18
  config.static_cache_control = 'public, max-age=3600'
18
19
 
19
20
  # Show full error reports and disable caching.
@@ -13,7 +13,7 @@
13
13
 
14
14
  ActiveRecord::Schema.define(version: 20141105073909) do
15
15
 
16
- create_table "delayed_jobs", force: true do |t|
16
+ create_table "delayed_jobs", force: :cascade do |t|
17
17
  t.integer "priority", default: 0, null: false
18
18
  t.integer "attempts", default: 0, null: false
19
19
  t.text "handler", null: false
@@ -29,7 +29,7 @@ ActiveRecord::Schema.define(version: 20141105073909) do
29
29
 
30
30
  add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority"
31
31
 
32
- create_table "fogged_resources", force: true do |t|
32
+ create_table "fogged_resources", force: :cascade do |t|
33
33
  t.string "name", null: false
34
34
  t.string "token", null: false
35
35
  t.integer "width"
@@ -46,14 +46,14 @@ ActiveRecord::Schema.define(version: 20141105073909) do
46
46
 
47
47
  add_index "fogged_resources", ["token"], name: "index_fogged_resources_on_token"
48
48
 
49
- create_table "images", force: true do |t|
49
+ create_table "images", force: :cascade do |t|
50
50
  t.string "name"
51
51
  t.integer "resource_id"
52
52
  t.datetime "created_at"
53
53
  t.datetime "updated_at"
54
54
  end
55
55
 
56
- create_table "movie_fogged_resources", force: true do |t|
56
+ create_table "movie_fogged_resources", force: :cascade do |t|
57
57
  t.integer "movie_id"
58
58
  t.integer "resource_id"
59
59
  t.datetime "created_at"
@@ -63,7 +63,7 @@ ActiveRecord::Schema.define(version: 20141105073909) do
63
63
  add_index "movie_fogged_resources", ["movie_id"], name: "index_movie_fogged_resources_on_movie_id"
64
64
  add_index "movie_fogged_resources", ["resource_id"], name: "index_movie_fogged_resources_on_resource_id"
65
65
 
66
- create_table "movies", force: true do |t|
66
+ create_table "movies", force: :cascade do |t|
67
67
  t.string "name"
68
68
  t.datetime "created_at"
69
69
  t.datetime "updated_at"
Binary file
@@ -232,3 +232,237 @@ Migrating to CreateMovieResources (20141104152345)
232
232
  FROM sqlite_temp_master
233
233
  WHERE name='index_movie_resources_on_movie_id' AND type='index'
234
234
 
235
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
236
+ Migrating to CreateDelayedJobs (20141105073909)
237
+  (0.0ms) begin transaction
238
+  (0.4ms) DROP TABLE "delayed_jobs"
239
+  (0.2ms) CREATE TABLE "delayed_jobs" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "priority" integer DEFAULT 0 NOT NULL, "attempts" integer DEFAULT 0 NOT NULL, "handler" text NOT NULL, "last_error" text, "run_at" datetime, "locked_at" datetime, "failed_at" datetime, "locked_by" varchar(255), "queue" varchar(255), "created_at" datetime, "updated_at" datetime)
240
+  (0.1ms) select sqlite_version(*)
241
+  (0.1ms) CREATE INDEX "delayed_jobs_priority" ON "delayed_jobs" ("priority", "run_at")
242
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141105073909"]]
243
+  (0.8ms) commit transaction
244
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
245
+  (0.1ms) SELECT sql
246
+ FROM sqlite_master
247
+ WHERE name='delayed_jobs_priority' AND type='index'
248
+ UNION ALL
249
+ SELECT sql
250
+ FROM sqlite_temp_master
251
+ WHERE name='delayed_jobs_priority' AND type='index'
252
+
253
+  (0.1ms)  SELECT sql
254
+ FROM sqlite_master
255
+ WHERE name='index_fogged_resources_on_token' AND type='index'
256
+ UNION ALL
257
+ SELECT sql
258
+ FROM sqlite_temp_master
259
+ WHERE name='index_fogged_resources_on_token' AND type='index'
260
+ 
261
+  (0.1ms) SELECT sql
262
+ FROM sqlite_master
263
+ WHERE name='index_movie_resources_on_fogged_resource_id' AND type='index'
264
+ UNION ALL
265
+ SELECT sql
266
+ FROM sqlite_temp_master
267
+ WHERE name='index_movie_resources_on_fogged_resource_id' AND type='index'
268
+
269
+  (0.1ms)  SELECT sql
270
+ FROM sqlite_master
271
+ WHERE name='index_movie_resources_on_movie_id' AND type='index'
272
+ UNION ALL
273
+ SELECT sql
274
+ FROM sqlite_temp_master
275
+ WHERE name='index_movie_resources_on_movie_id' AND type='index'
276
+ 
277
+  (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL) 
278
+  (0.1ms) select sqlite_version(*)
279
+  (0.9ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
280
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
281
+ Migrating to CreateFoggedResources (20141103143408)
282
+  (0.1ms) begin transaction
283
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/db/migrate/20141103143408_create_fogged_resources.rb:15)
284
+  (0.4ms) CREATE TABLE "fogged_resources" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "token" varchar NOT NULL, "width" integer, "height" integer, "extension" varchar NOT NULL, "uploading" boolean, "content_type" varchar NOT NULL, "encoding_progress" integer, "encoding_job_id" varchar, "duration" integer, "created_at" datetime, "updated_at" datetime)
285
+  (0.1ms) CREATE INDEX "index_fogged_resources_on_token" ON "fogged_resources" ("token")
286
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141103143408"]]
287
+  (0.9ms) commit transaction
288
+ Migrating to CreateImages (20141104135257)
289
+  (0.0ms) begin transaction
290
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104135257_create_images.rb:7)
291
+  (0.2ms) CREATE TABLE "images" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "resource_id" integer, "created_at" datetime, "updated_at" datetime) 
292
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104135257"]]
293
+  (0.8ms) commit transaction
294
+ Migrating to CreateMovies (20141104152227)
295
+  (0.0ms) begin transaction
296
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104152227_create_movies.rb:6)
297
+  (0.2ms) CREATE TABLE "movies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime, "updated_at" datetime) 
298
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104152227"]]
299
+  (0.8ms) commit transaction
300
+ Migrating to CreateMovieFoggedResources (20141104152345)
301
+  (0.0ms) begin transaction
302
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104152345_create_movie_fogged_resources.rb:7)
303
+  (0.3ms) CREATE TABLE "movie_fogged_resources" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "movie_id" integer, "resource_id" integer, "created_at" datetime, "updated_at" datetime) 
304
+  (0.1ms) CREATE INDEX "index_movie_fogged_resources_on_movie_id" ON "movie_fogged_resources" ("movie_id")
305
+  (0.1ms)  SELECT sql
306
+ FROM sqlite_master
307
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
308
+ UNION ALL
309
+ SELECT sql
310
+ FROM sqlite_temp_master
311
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
312
+ 
313
+  (0.1ms) CREATE INDEX "index_movie_fogged_resources_on_resource_id" ON "movie_fogged_resources" ("resource_id")
314
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104152345"]]
315
+  (0.8ms) commit transaction
316
+ Migrating to CreateDelayedJobs (20141105073909)
317
+  (0.0ms) begin transaction
318
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in up at /Users/david/projects/fogged/test/dummy/db/migrate/20141105073909_create_delayed_jobs.rb:13)
319
+  (0.3ms) CREATE TABLE "delayed_jobs" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "priority" integer DEFAULT 0 NOT NULL, "attempts" integer DEFAULT 0 NOT NULL, "handler" text NOT NULL, "last_error" text, "run_at" datetime, "locked_at" datetime, "failed_at" datetime, "locked_by" varchar, "queue" varchar, "created_at" datetime, "updated_at" datetime)
320
+  (0.1ms) CREATE INDEX "delayed_jobs_priority" ON "delayed_jobs" ("priority", "run_at")
321
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141105073909"]]
322
+  (0.9ms) commit transaction
323
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
324
+  (0.1ms)  SELECT sql
325
+ FROM sqlite_master
326
+ WHERE name='delayed_jobs_priority' AND type='index'
327
+ UNION ALL
328
+ SELECT sql
329
+ FROM sqlite_temp_master
330
+ WHERE name='delayed_jobs_priority' AND type='index'
331
+ 
332
+  (0.1ms) SELECT sql
333
+ FROM sqlite_master
334
+ WHERE name='index_fogged_resources_on_token' AND type='index'
335
+ UNION ALL
336
+ SELECT sql
337
+ FROM sqlite_temp_master
338
+ WHERE name='index_fogged_resources_on_token' AND type='index'
339
+
340
+  (0.1ms)  SELECT sql
341
+ FROM sqlite_master
342
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
343
+ UNION ALL
344
+ SELECT sql
345
+ FROM sqlite_temp_master
346
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
347
+ 
348
+  (0.1ms) SELECT sql
349
+ FROM sqlite_master
350
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
351
+ UNION ALL
352
+ SELECT sql
353
+ FROM sqlite_temp_master
354
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
355
+
356
+  (6.3ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL) 
357
+  (0.2ms) select sqlite_version(*)
358
+  (1.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
359
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
360
+ Migrating to CreateFoggedResources (20141103143408)
361
+  (0.1ms) begin transaction
362
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/db/migrate/20141103143408_create_fogged_resources.rb:15)
363
+  (1.0ms) CREATE TABLE "fogged_resources" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "token" varchar NOT NULL, "width" integer, "height" integer, "extension" varchar NOT NULL, "uploading" boolean, "content_type" varchar NOT NULL, "encoding_progress" integer, "encoding_job_id" varchar, "duration" integer, "created_at" datetime, "updated_at" datetime)
364
+  (0.2ms) CREATE INDEX "index_fogged_resources_on_token" ON "fogged_resources" ("token")
365
+ SQL (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141103143408"]]
366
+  (1.4ms) commit transaction
367
+ Migrating to CreateImages (20141104135257)
368
+  (0.2ms) begin transaction
369
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104135257_create_images.rb:7)
370
+  (0.6ms) CREATE TABLE "images" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "resource_id" integer, "created_at" datetime, "updated_at" datetime) 
371
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104135257"]]
372
+  (1.1ms) commit transaction
373
+ Migrating to CreateMovies (20141104152227)
374
+  (0.1ms) begin transaction
375
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104152227_create_movies.rb:6)
376
+  (0.4ms) CREATE TABLE "movies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime, "updated_at" datetime) 
377
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104152227"]]
378
+  (0.8ms) commit transaction
379
+ Migrating to CreateMovieFoggedResources (20141104152345)
380
+  (0.1ms) begin transaction
381
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/david/projects/fogged/test/dummy/db/migrate/20141104152345_create_movie_fogged_resources.rb:7)
382
+  (0.5ms) CREATE TABLE "movie_fogged_resources" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "movie_id" integer, "resource_id" integer, "created_at" datetime, "updated_at" datetime) 
383
+  (0.2ms) CREATE INDEX "index_movie_fogged_resources_on_movie_id" ON "movie_fogged_resources" ("movie_id")
384
+  (0.2ms)  SELECT sql
385
+ FROM sqlite_master
386
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
387
+ UNION ALL
388
+ SELECT sql
389
+ FROM sqlite_temp_master
390
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
391
+ 
392
+  (0.3ms) CREATE INDEX "index_movie_fogged_resources_on_resource_id" ON "movie_fogged_resources" ("resource_id")
393
+ SQL (0.8ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141104152345"]]
394
+  (2.2ms) commit transaction
395
+ Migrating to CreateDelayedJobs (20141105073909)
396
+  (0.2ms) begin transaction
397
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in up at /Users/david/projects/fogged/test/dummy/db/migrate/20141105073909_create_delayed_jobs.rb:13)
398
+  (1.2ms) CREATE TABLE "delayed_jobs" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "priority" integer DEFAULT 0 NOT NULL, "attempts" integer DEFAULT 0 NOT NULL, "handler" text NOT NULL, "last_error" text, "run_at" datetime, "locked_at" datetime, "failed_at" datetime, "locked_by" varchar, "queue" varchar, "created_at" datetime, "updated_at" datetime)
399
+  (0.1ms) CREATE INDEX "delayed_jobs_priority" ON "delayed_jobs" ("priority", "run_at")
400
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141105073909"]]
401
+  (1.3ms) commit transaction
402
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
403
+  (0.2ms)  SELECT sql
404
+ FROM sqlite_master
405
+ WHERE name='delayed_jobs_priority' AND type='index'
406
+ UNION ALL
407
+ SELECT sql
408
+ FROM sqlite_temp_master
409
+ WHERE name='delayed_jobs_priority' AND type='index'
410
+ 
411
+  (0.2ms) SELECT sql
412
+ FROM sqlite_master
413
+ WHERE name='index_fogged_resources_on_token' AND type='index'
414
+ UNION ALL
415
+ SELECT sql
416
+ FROM sqlite_temp_master
417
+ WHERE name='index_fogged_resources_on_token' AND type='index'
418
+
419
+  (0.2ms)  SELECT sql
420
+ FROM sqlite_master
421
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
422
+ UNION ALL
423
+ SELECT sql
424
+ FROM sqlite_temp_master
425
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
426
+ 
427
+  (0.2ms) SELECT sql
428
+ FROM sqlite_master
429
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
430
+ UNION ALL
431
+ SELECT sql
432
+ FROM sqlite_temp_master
433
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
434
+
435
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
436
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
437
+  (0.1ms)  SELECT sql
438
+ FROM sqlite_master
439
+ WHERE name='delayed_jobs_priority' AND type='index'
440
+ UNION ALL
441
+ SELECT sql
442
+ FROM sqlite_temp_master
443
+ WHERE name='delayed_jobs_priority' AND type='index'
444
+ 
445
+  (0.1ms) SELECT sql
446
+ FROM sqlite_master
447
+ WHERE name='index_fogged_resources_on_token' AND type='index'
448
+ UNION ALL
449
+ SELECT sql
450
+ FROM sqlite_temp_master
451
+ WHERE name='index_fogged_resources_on_token' AND type='index'
452
+
453
+  (0.1ms)  SELECT sql
454
+ FROM sqlite_master
455
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
456
+ UNION ALL
457
+ SELECT sql
458
+ FROM sqlite_temp_master
459
+ WHERE name='index_movie_fogged_resources_on_resource_id' AND type='index'
460
+ 
461
+  (0.1ms) SELECT sql
462
+ FROM sqlite_master
463
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
464
+ UNION ALL
465
+ SELECT sql
466
+ FROM sqlite_temp_master
467
+ WHERE name='index_movie_fogged_resources_on_movie_id' AND type='index'
468
+