fogged 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+