render_sync 0.5.0

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 (107) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +153 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE +22 -0
  5. data/README.md +521 -0
  6. data/Rakefile +9 -0
  7. data/app/assets/javascripts/sync.coffee +355 -0
  8. data/app/controllers/sync/refetches_controller.rb +56 -0
  9. data/app/helpers/render_sync/config_helper.rb +15 -0
  10. data/config/routes.rb +3 -0
  11. data/config/sync.yml +21 -0
  12. data/lib/generators/render_sync/install_generator.rb +14 -0
  13. data/lib/generators/render_sync/templates/sync.ru +14 -0
  14. data/lib/generators/render_sync/templates/sync.yml +34 -0
  15. data/lib/render_sync.rb +174 -0
  16. data/lib/render_sync/action.rb +39 -0
  17. data/lib/render_sync/actions.rb +114 -0
  18. data/lib/render_sync/channel.rb +23 -0
  19. data/lib/render_sync/clients/dummy.rb +22 -0
  20. data/lib/render_sync/clients/faye.rb +104 -0
  21. data/lib/render_sync/clients/pusher.rb +77 -0
  22. data/lib/render_sync/controller_helpers.rb +33 -0
  23. data/lib/render_sync/engine.rb +24 -0
  24. data/lib/render_sync/erb_tracker.rb +49 -0
  25. data/lib/render_sync/faye_extension.rb +45 -0
  26. data/lib/render_sync/model.rb +174 -0
  27. data/lib/render_sync/model_actions.rb +60 -0
  28. data/lib/render_sync/model_change_tracking.rb +97 -0
  29. data/lib/render_sync/model_syncing.rb +65 -0
  30. data/lib/render_sync/model_touching.rb +35 -0
  31. data/lib/render_sync/partial.rb +112 -0
  32. data/lib/render_sync/partial_creator.rb +47 -0
  33. data/lib/render_sync/reactor.rb +48 -0
  34. data/lib/render_sync/refetch_model.rb +21 -0
  35. data/lib/render_sync/refetch_partial.rb +43 -0
  36. data/lib/render_sync/refetch_partial_creator.rb +21 -0
  37. data/lib/render_sync/renderer.rb +19 -0
  38. data/lib/render_sync/resource.rb +115 -0
  39. data/lib/render_sync/scope.rb +113 -0
  40. data/lib/render_sync/scope_definition.rb +30 -0
  41. data/lib/render_sync/view_helpers.rb +106 -0
  42. data/test/dummy/README.rdoc +28 -0
  43. data/test/dummy/Rakefile +6 -0
  44. data/test/dummy/app/assets/javascripts/application.js +13 -0
  45. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  46. data/test/dummy/app/controllers/application_controller.rb +5 -0
  47. data/test/dummy/app/helpers/application_helper.rb +2 -0
  48. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  49. data/test/dummy/app/views/sync/users/_show.html.erb +1 -0
  50. data/test/dummy/app/views/sync/users/refetch/_show.html.erb +1 -0
  51. data/test/dummy/bin/bundle +3 -0
  52. data/test/dummy/bin/rails +4 -0
  53. data/test/dummy/bin/rake +4 -0
  54. data/test/dummy/config.ru +4 -0
  55. data/test/dummy/config/application.rb +22 -0
  56. data/test/dummy/config/boot.rb +5 -0
  57. data/test/dummy/config/database.yml +8 -0
  58. data/test/dummy/config/environment.rb +5 -0
  59. data/test/dummy/config/environments/development.rb +29 -0
  60. data/test/dummy/config/environments/production.rb +80 -0
  61. data/test/dummy/config/environments/test.rb +36 -0
  62. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  63. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  64. data/test/dummy/config/initializers/inflections.rb +16 -0
  65. data/test/dummy/config/initializers/mime_types.rb +5 -0
  66. data/test/dummy/config/initializers/secret_token.rb +12 -0
  67. data/test/dummy/config/initializers/session_store.rb +3 -0
  68. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  69. data/test/dummy/config/locales/en.yml +23 -0
  70. data/test/dummy/config/routes.rb +56 -0
  71. data/test/dummy/log/test.log +626 -0
  72. data/test/dummy/public/404.html +58 -0
  73. data/test/dummy/public/422.html +58 -0
  74. data/test/dummy/public/500.html +57 -0
  75. data/test/dummy/public/favicon.ico +0 -0
  76. data/test/em_minitest_spec.rb +100 -0
  77. data/test/fixtures/sync_auth_token_missing.yml +6 -0
  78. data/test/fixtures/sync_erb.yml +7 -0
  79. data/test/fixtures/sync_faye.yml +7 -0
  80. data/test/fixtures/sync_pusher.yml +8 -0
  81. data/test/models/group.rb +3 -0
  82. data/test/models/project.rb +2 -0
  83. data/test/models/todo.rb +8 -0
  84. data/test/models/user.rb +82 -0
  85. data/test/sync/abstract_controller.rb +3 -0
  86. data/test/sync/action_test.rb +82 -0
  87. data/test/sync/channel_test.rb +15 -0
  88. data/test/sync/config_test.rb +25 -0
  89. data/test/sync/erb_tracker_test.rb +72 -0
  90. data/test/sync/faye_extension_test.rb +87 -0
  91. data/test/sync/message_test.rb +159 -0
  92. data/test/sync/model_test.rb +315 -0
  93. data/test/sync/partial_creator_test.rb +35 -0
  94. data/test/sync/partial_test.rb +107 -0
  95. data/test/sync/protected_attributes_test.rb +39 -0
  96. data/test/sync/reactor_test.rb +18 -0
  97. data/test/sync/refetch_model_test.rb +26 -0
  98. data/test/sync/refetch_partial_creator_test.rb +16 -0
  99. data/test/sync/refetch_partial_test.rb +74 -0
  100. data/test/sync/renderer_test.rb +19 -0
  101. data/test/sync/resource_test.rb +181 -0
  102. data/test/sync/scope_definition_test.rb +39 -0
  103. data/test/sync/scope_test.rb +113 -0
  104. data/test/test_helper.rb +66 -0
  105. data/test/travis/sync.ru +14 -0
  106. data/test/travis/sync.yml +21 -0
  107. metadata +317 -0
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
6
+ <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1 @@
1
+ <h1><%= user.id %></h1>
@@ -0,0 +1 @@
1
+ <h1>Refetch <%= user.id %></h1>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ Bundler.require(*Rails.groups)
6
+ require "render_sync"
7
+
8
+ module Dummy
9
+ class Application < Rails::Application
10
+ # Settings in config/environments/* take precedence over those specified here.
11
+ # Application configuration should go into files in config/initializers
12
+ # -- all .rb files in that directory are automatically loaded.
13
+
14
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
15
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
16
+ # config.time_zone = 'Central Time (US & Canada)'
17
+
18
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20
+ # config.i18n.default_locale = :de
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ # Set up gems listed in the Gemfile.
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
+ $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,8 @@
1
+ # Warning: The database defined as "test" will be erased and
2
+ # re-generated from your development database when you run "rake".
3
+ # Do not set this db to the same as development or production.
4
+ test:
5
+ adapter: sqlite3
6
+ database: ":memory:"
7
+ pool: 5
8
+ timeout: 5000
@@ -0,0 +1,5 @@
1
+ # Load the Rails application.
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the Rails application.
5
+ Dummy::Application.initialize!
@@ -0,0 +1,29 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
+
12
+ # Show full error reports and disable caching.
13
+ config.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Don't care if the mailer can't send.
17
+ config.action_mailer.raise_delivery_errors = false
18
+
19
+ # Print deprecation notices to the Rails logger.
20
+ config.active_support.deprecation = :log
21
+
22
+ # Raise an error on page load if there are pending migrations
23
+ config.active_record.migration_error = :page_load
24
+
25
+ # Debug mode disables concatenation and preprocessing of assets.
26
+ # This option may cause significant delays in view rendering with a large
27
+ # number of complex assets.
28
+ config.assets.debug = true
29
+ end
@@ -0,0 +1,80 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # Code is not reloaded between requests.
5
+ config.cache_classes = true
6
+
7
+ # Eager load code on boot. This eager loads most of Rails and
8
+ # your application in memory, allowing both thread web servers
9
+ # and those relying on copy on write to perform better.
10
+ # Rake tasks automatically ignore this option for performance.
11
+ config.eager_load = true
12
+
13
+ # Full error reports are disabled and caching is turned on.
14
+ config.consider_all_requests_local = false
15
+ config.action_controller.perform_caching = true
16
+
17
+ # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
+ # Add `rack-cache` to your Gemfile before enabling this.
19
+ # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
20
+ # config.action_dispatch.rack_cache = true
21
+
22
+ # Disable Rails's static asset server (Apache or nginx will already do this).
23
+ config.serve_static_assets = false
24
+
25
+ # Compress JavaScripts and CSS.
26
+ config.assets.js_compressor = :uglifier
27
+ # config.assets.css_compressor = :sass
28
+
29
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
30
+ config.assets.compile = false
31
+
32
+ # Generate digests for assets URLs.
33
+ config.assets.digest = true
34
+
35
+ # Version of your assets, change this if you want to expire all your assets.
36
+ config.assets.version = '1.0'
37
+
38
+ # Specifies the header that your server uses for sending files.
39
+ # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
40
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
41
+
42
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
43
+ # config.force_ssl = true
44
+
45
+ # Set to :debug to see everything in the log.
46
+ config.log_level = :info
47
+
48
+ # Prepend all log lines with the following tags.
49
+ # config.log_tags = [ :subdomain, :uuid ]
50
+
51
+ # Use a different logger for distributed setups.
52
+ # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
53
+
54
+ # Use a different cache store in production.
55
+ # config.cache_store = :mem_cache_store
56
+
57
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
58
+ # config.action_controller.asset_host = "http://assets.example.com"
59
+
60
+ # Precompile additional assets.
61
+ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
62
+ # config.assets.precompile += %w( search.js )
63
+
64
+ # Ignore bad email addresses and do not raise email delivery errors.
65
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
66
+ # config.action_mailer.raise_delivery_errors = false
67
+
68
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
69
+ # the I18n.default_locale when a translation can not be found).
70
+ config.i18n.fallbacks = true
71
+
72
+ # Send deprecation notices to registered listeners.
73
+ config.active_support.deprecation = :notify
74
+
75
+ # Disable automatic flushing of the log to improve performance.
76
+ # config.autoflush_log = false
77
+
78
+ # Use default logging formatter so that PID and timestamp are not suppressed.
79
+ config.log_formatter = ::Logger::Formatter.new
80
+ end
@@ -0,0 +1,36 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Do not eager load code on boot. This avoids loading your whole application
11
+ # just for the purpose of running a single test. If you are using a tool that
12
+ # preloads Rails for running tests, you may have to set it to true.
13
+ config.eager_load = false
14
+
15
+ # Configure static asset server for tests with Cache-Control for performance.
16
+ config.serve_static_assets = true
17
+ config.static_cache_control = "public, max-age=3600"
18
+
19
+ # Show full error reports and disable caching.
20
+ config.consider_all_requests_local = true
21
+ config.action_controller.perform_caching = false
22
+
23
+ # Raise exceptions instead of rendering exception templates.
24
+ config.action_dispatch.show_exceptions = false
25
+
26
+ # Disable request forgery protection in test environment.
27
+ config.action_controller.allow_forgery_protection = false
28
+
29
+ # Tell Action Mailer not to deliver emails to the real world.
30
+ # The :test delivery method accumulates sent emails in the
31
+ # ActionMailer::Base.deliveries array.
32
+ config.action_mailer.delivery_method = :test
33
+
34
+ # Print deprecation notices to the stderr.
35
+ config.active_support.deprecation = :stderr
36
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Configure sensitive parameters which will be filtered from the log file.
4
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,16 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format. Inflections
4
+ # are locale specific, and you may define rules for as many different
5
+ # locales as you wish. All of these examples are active by default:
6
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
7
+ # inflect.plural /^(ox)$/i, '\1en'
8
+ # inflect.singular /^(ox)en/i, '\1'
9
+ # inflect.irregular 'person', 'people'
10
+ # inflect.uncountable %w( fish sheep )
11
+ # end
12
+
13
+ # These inflection rules are supported but not enabled by default:
14
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
15
+ # inflect.acronym 'RESTful'
16
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,12 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure your secret_key_base is kept private
11
+ # if you're sharing your code publicly.
12
+ Dummy::Application.config.secret_key_base = '545494132fe4dfe43e66616c200c3a9c1994001965e300d4fc6d703d5fa8ec707d57ca9f55bd1806d568a4b3b0a02f0b6e4564049a08a5c22366279d1732a6f7'
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
9
+ end
10
+
11
+ # To enable root element in JSON for ActiveRecord objects.
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = true
14
+ # end
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,56 @@
1
+ Dummy::Application.routes.draw do
2
+ # The priority is based upon order of creation: first created -> highest priority.
3
+ # See how all your routes lay out with "rake routes".
4
+
5
+ # You can have the root of your site routed with "root"
6
+ # root 'welcome#index'
7
+
8
+ # Example of regular route:
9
+ # get 'products/:id' => 'catalog#view'
10
+
11
+ # Example of named route that can be invoked with purchase_url(id: product.id)
12
+ # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
13
+
14
+ # Example resource route (maps HTTP verbs to controller actions automatically):
15
+ # resources :products
16
+
17
+ # Example resource route with options:
18
+ # resources :products do
19
+ # member do
20
+ # get 'short'
21
+ # post 'toggle'
22
+ # end
23
+ #
24
+ # collection do
25
+ # get 'sold'
26
+ # end
27
+ # end
28
+
29
+ # Example resource route with sub-resources:
30
+ # resources :products do
31
+ # resources :comments, :sales
32
+ # resource :seller
33
+ # end
34
+
35
+ # Example resource route with more complex sub-resources:
36
+ # resources :products do
37
+ # resources :comments
38
+ # resources :sales do
39
+ # get 'recent', on: :collection
40
+ # end
41
+ # end
42
+
43
+ # Example resource route with concerns:
44
+ # concern :toggleable do
45
+ # post 'toggle'
46
+ # end
47
+ # resources :posts, concerns: :toggleable
48
+ # resources :photos, concerns: :toggleable
49
+
50
+ # Example resource route within a namespace:
51
+ # namespace :admin do
52
+ # # Directs /admin/products/* to Admin::ProductsController
53
+ # # (app/controllers/admin/products_controller.rb)
54
+ # resources :products
55
+ # end
56
+ end
@@ -0,0 +1,626 @@
1
+ Connecting to database specified by database.yml
2
+  (0.1ms) DROP TABLE IF EXISTS todos
3
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
4
+  (0.0ms) DROP TABLE IF EXISTS users
5
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
6
+  (0.0ms) DROP TABLE IF EXISTS groups
7
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
8
+  (0.0ms) DROP TABLE IF EXISTS projects
9
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
10
+  (0.1ms) DROP TABLE IF EXISTS todos
11
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
12
+  (0.0ms) DROP TABLE IF EXISTS users
13
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
14
+  (0.0ms) DROP TABLE IF EXISTS groups
15
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
16
+  (0.0ms) DROP TABLE IF EXISTS projects
17
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
18
+ end of file reached
19
+ end of file reached
20
+ end of file reached
21
+ end of file reached
22
+ end of file reached
23
+ end of file reached
24
+ end of file reached
25
+ end of file reached
26
+ end of file reached
27
+ end of file reached
28
+ end of file reached
29
+ end of file reached
30
+ end of file reached
31
+ end of file reached
32
+ end of file reached
33
+ end of file reached
34
+ end of file reached
35
+ end of file reached
36
+ end of file reached
37
+ end of file reached
38
+ end of file reached
39
+ end of file reached
40
+ end of file reached
41
+ end of file reached
42
+ end of file reached
43
+ Connecting to database specified by database.yml
44
+  (0.2ms) DROP TABLE IF EXISTS todos
45
+  (0.3ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
46
+  (0.0ms) DROP TABLE IF EXISTS users
47
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
48
+  (0.0ms) DROP TABLE IF EXISTS groups
49
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
50
+  (0.0ms) DROP TABLE IF EXISTS projects
51
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
52
+  (0.1ms) DROP TABLE IF EXISTS todos
53
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
54
+  (0.1ms) DROP TABLE IF EXISTS users
55
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
56
+  (0.1ms) DROP TABLE IF EXISTS groups
57
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
58
+  (0.1ms) DROP TABLE IF EXISTS projects
59
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
60
+ end of file reached
61
+ end of file reached
62
+ end of file reached
63
+
64
+ end of file reached
65
+ end of file reached
66
+ end of file reached
67
+ end of file reached
68
+ Connection refused - connect(2) for "localhost" port 9292
69
+ Connection refused - connect(2) for "localhost" port 9292
70
+ Connection refused - connect(2) for "localhost" port 9292
71
+ Connection refused - connect(2) for "localhost" port 9292
72
+ Connection refused - connect(2) for "localhost" port 9292
73
+ Connection refused - connect(2) for "localhost" port 9292
74
+ Connection refused - connect(2) for "localhost" port 9292
75
+ Connection refused - connect(2) for "localhost" port 9292
76
+ Connection refused - connect(2) for "localhost" port 9292
77
+ Connection refused - connect(2) for "localhost" port 9292
78
+ Connection refused - connect(2) for "localhost" port 9292
79
+ Connection refused - connect(2) for "localhost" port 9292
80
+ Connection refused - connect(2) for "localhost" port 9292
81
+ Connection refused - connect(2) for "localhost" port 9292
82
+ Connection refused - connect(2) for "localhost" port 9292
83
+ Connection refused - connect(2) for "localhost" port 9292
84
+ Connection refused - connect(2) for "localhost" port 9292
85
+ Rendered render_sync/users/_show.html.erb (3.9ms)
86
+ Rendered render_sync/users/_show.html.erb (0.0ms)
87
+ Rendered render_sync/users/_show.html.erb (0.0ms)
88
+ Rendered render_sync/users/_show.html.erb (0.0ms)
89
+ Rendered render_sync/users/_show.html.erb (0.0ms)
90
+ Rendered render_sync/users/refetch/_show.html.erb (0.4ms)
91
+ Rendered render_sync/users/_show.html.erb (0.3ms)
92
+ Connecting to database specified by database.yml
93
+  (0.1ms) DROP TABLE IF EXISTS todos
94
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
95
+  (0.0ms) DROP TABLE IF EXISTS users
96
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
97
+  (0.0ms) DROP TABLE IF EXISTS groups
98
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
99
+  (0.0ms) DROP TABLE IF EXISTS projects
100
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
101
+  (0.1ms) DROP TABLE IF EXISTS todos
102
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
103
+  (0.0ms) DROP TABLE IF EXISTS users
104
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
105
+  (0.0ms) DROP TABLE IF EXISTS groups
106
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
107
+  (0.0ms) DROP TABLE IF EXISTS projects
108
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
109
+ end of file reached
110
+ end of file reached
111
+ end of file reached
112
+ end of file reached
113
+ end of file reached
114
+ end of file reached
115
+ end of file reached
116
+ end of file reached
117
+ end of file reached
118
+ end of file reached
119
+ end of file reached
120
+ end of file reached
121
+ end of file reached
122
+ end of file reached
123
+ end of file reached
124
+ end of file reached
125
+ end of file reached
126
+ end of file reached
127
+ end of file reached
128
+ end of file reached
129
+ end of file reached
130
+ end of file reached
131
+ end of file reached
132
+ end of file reached
133
+ end of file reached
134
+ Rendered render_sync/users/_show.html.erb (1.5ms)
135
+ Rendered render_sync/users/_show.html.erb (0.0ms)
136
+ Rendered render_sync/users/_show.html.erb (0.0ms)
137
+ Rendered render_sync/users/_show.html.erb (0.0ms)
138
+ Rendered render_sync/users/_show.html.erb (0.0ms)
139
+ Rendered render_sync/users/refetch/_show.html.erb (0.8ms)
140
+ Rendered render_sync/users/_show.html.erb (0.3ms)
141
+ Connecting to database specified by database.yml
142
+  (0.2ms) DROP TABLE IF EXISTS todos
143
+  (0.2ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
144
+  (0.0ms) DROP TABLE IF EXISTS users
145
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
146
+  (0.0ms) DROP TABLE IF EXISTS groups
147
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
148
+  (0.0ms) DROP TABLE IF EXISTS projects
149
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
150
+  (0.1ms) DROP TABLE IF EXISTS todos
151
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
152
+  (0.1ms) DROP TABLE IF EXISTS users
153
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
154
+  (0.1ms) DROP TABLE IF EXISTS groups
155
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
156
+  (0.1ms) DROP TABLE IF EXISTS projects
157
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
158
+ end of file reached
159
+ end of file reached
160
+ end of file reached
161
+ end of file reached
162
+ end of file reached
163
+ end of file reached
164
+ end of file reached
165
+ end of file reached
166
+ end of file reached
167
+ end of file reached
168
+ end of file reached
169
+ end of file reached
170
+ end of file reached
171
+ end of file reached
172
+ end of file reached
173
+ end of file reached
174
+ end of file reached
175
+ end of file reached
176
+ end of file reached
177
+ end of file reached
178
+ end of file reached
179
+ end of file reached
180
+ end of file reached
181
+ end of file reached
182
+ end of file reached
183
+ Rendered render_sync/users/_show.html.erb (4.8ms)
184
+ Rendered render_sync/users/_show.html.erb (0.0ms)
185
+ Rendered render_sync/users/_show.html.erb (0.1ms)
186
+ Rendered render_sync/users/_show.html.erb (0.0ms)
187
+ Rendered render_sync/users/_show.html.erb (0.0ms)
188
+ Rendered render_sync/users/refetch/_show.html.erb (0.6ms)
189
+ Rendered render_sync/users/_show.html.erb (0.4ms)
190
+ Connecting to database specified by database.yml
191
+ Connecting to database specified by database.yml
192
+  (0.3ms) DROP TABLE IF EXISTS todos
193
+  (0.3ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
194
+  (0.0ms) DROP TABLE IF EXISTS users
195
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
196
+  (0.0ms) DROP TABLE IF EXISTS groups
197
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
198
+  (0.0ms) DROP TABLE IF EXISTS projects
199
+  (0.2ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
200
+  (0.2ms) DROP TABLE IF EXISTS todos
201
+  (0.2ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
202
+  (0.1ms) DROP TABLE IF EXISTS users
203
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
204
+  (0.1ms) DROP TABLE IF EXISTS groups
205
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
206
+  (0.1ms) DROP TABLE IF EXISTS projects
207
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
208
+ end of file reached
209
+ end of file reached
210
+ end of file reached
211
+ end of file reached
212
+ end of file reached
213
+ end of file reached
214
+ end of file reached
215
+ end of file reached
216
+ end of file reached
217
+ end of file reached
218
+ end of file reached
219
+ end of file reached
220
+ end of file reached
221
+ end of file reached
222
+ end of file reached
223
+ end of file reached
224
+ end of file reached
225
+ end of file reached
226
+ end of file reached
227
+ end of file reached
228
+ end of file reached
229
+ end of file reached
230
+ end of file reached
231
+ end of file reached
232
+ end of file reached
233
+ Rendered render_sync/users/_show.html.erb (4.5ms)
234
+ Rendered render_sync/users/_show.html.erb (0.0ms)
235
+ Rendered render_sync/users/_show.html.erb (0.0ms)
236
+ Rendered render_sync/users/_show.html.erb (0.0ms)
237
+ Rendered render_sync/users/_show.html.erb (0.0ms)
238
+ Rendered render_sync/users/refetch/_show.html.erb (0.7ms)
239
+ Rendered render_sync/users/_show.html.erb (1.4ms)
240
+ Connecting to database specified by database.yml
241
+  (0.3ms) DROP TABLE IF EXISTS todos
242
+  (0.3ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
243
+  (0.0ms) DROP TABLE IF EXISTS users
244
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
245
+  (0.1ms) DROP TABLE IF EXISTS groups
246
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
247
+  (0.0ms) DROP TABLE IF EXISTS projects
248
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
249
+  (0.1ms) DROP TABLE IF EXISTS todos
250
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
251
+  (0.2ms) DROP TABLE IF EXISTS users
252
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
253
+  (0.1ms) DROP TABLE IF EXISTS groups
254
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
255
+  (0.1ms) DROP TABLE IF EXISTS projects
256
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
257
+ end of file reached
258
+ end of file reached
259
+ end of file reached
260
+ end of file reached
261
+ end of file reached
262
+ end of file reached
263
+ end of file reached
264
+ end of file reached
265
+ end of file reached
266
+ end of file reached
267
+ end of file reached
268
+ end of file reached
269
+ end of file reached
270
+ end of file reached
271
+ end of file reached
272
+ end of file reached
273
+ end of file reached
274
+ end of file reached
275
+ end of file reached
276
+ end of file reached
277
+ end of file reached
278
+ end of file reached
279
+ end of file reached
280
+ end of file reached
281
+ end of file reached
282
+ Rendered render_sync/users/_show.html.erb (4.3ms)
283
+ Rendered render_sync/users/_show.html.erb (0.0ms)
284
+ Rendered render_sync/users/_show.html.erb (0.1ms)
285
+ Rendered render_sync/users/_show.html.erb (0.0ms)
286
+ Rendered render_sync/users/_show.html.erb (0.0ms)
287
+ Rendered render_sync/users/refetch/_show.html.erb (0.6ms)
288
+ Rendered render_sync/users/_show.html.erb (0.4ms)
289
+ Connecting to database specified by database.yml
290
+  (0.3ms) DROP TABLE IF EXISTS todos
291
+  (0.3ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
292
+  (0.0ms) DROP TABLE IF EXISTS users
293
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
294
+  (0.0ms) DROP TABLE IF EXISTS groups
295
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
296
+  (0.0ms) DROP TABLE IF EXISTS projects
297
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
298
+  (0.2ms) DROP TABLE IF EXISTS todos
299
+  (0.2ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
300
+  (0.1ms) DROP TABLE IF EXISTS users
301
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
302
+  (0.1ms) DROP TABLE IF EXISTS groups
303
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
304
+  (0.1ms) DROP TABLE IF EXISTS projects
305
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
306
+ end of file reached
307
+ end of file reached
308
+ end of file reached
309
+ end of file reached
310
+ end of file reached
311
+ end of file reached
312
+ end of file reached
313
+ end of file reached
314
+ end of file reached
315
+ end of file reached
316
+ end of file reached
317
+ end of file reached
318
+ end of file reached
319
+ end of file reached
320
+ end of file reached
321
+ end of file reached
322
+ end of file reached
323
+ end of file reached
324
+ end of file reached
325
+ end of file reached
326
+ end of file reached
327
+ end of file reached
328
+ end of file reached
329
+ end of file reached
330
+ end of file reached
331
+ Rendered render_sync/users/_show.html.erb (4.4ms)
332
+ Rendered render_sync/users/_show.html.erb (0.0ms)
333
+ Rendered render_sync/users/_show.html.erb (0.0ms)
334
+ Rendered render_sync/users/_show.html.erb (0.0ms)
335
+ Rendered render_sync/users/_show.html.erb (0.0ms)
336
+ Rendered render_sync/users/refetch/_show.html.erb (0.9ms)
337
+ Rendered render_sync/users/_show.html.erb (0.5ms)
338
+ Connecting to database specified by database.yml
339
+  (0.3ms) DROP TABLE IF EXISTS todos
340
+  (0.4ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
341
+  (0.0ms) DROP TABLE IF EXISTS users
342
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
343
+  (0.0ms) DROP TABLE IF EXISTS groups
344
+  (0.2ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
345
+  (0.0ms) DROP TABLE IF EXISTS projects
346
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
347
+  (0.1ms) DROP TABLE IF EXISTS todos
348
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
349
+  (0.1ms) DROP TABLE IF EXISTS users
350
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
351
+  (0.1ms) DROP TABLE IF EXISTS groups
352
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
353
+  (0.1ms) DROP TABLE IF EXISTS projects
354
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
355
+ end of file reached
356
+ end of file reached
357
+ end of file reached
358
+ end of file reached
359
+ end of file reached
360
+ end of file reached
361
+ end of file reached
362
+ end of file reached
363
+ end of file reached
364
+ end of file reached
365
+ end of file reached
366
+ end of file reached
367
+ end of file reached
368
+ end of file reached
369
+ end of file reached
370
+ end of file reached
371
+ end of file reached
372
+ end of file reached
373
+ end of file reached
374
+ end of file reached
375
+ end of file reached
376
+ end of file reached
377
+ end of file reached
378
+ end of file reached
379
+ end of file reached
380
+ Rendered sync/users/_show.html.erb (4.5ms)
381
+ Rendered sync/users/_show.html.erb (0.0ms)
382
+ Rendered sync/users/_show.html.erb (0.0ms)
383
+ Rendered sync/users/_show.html.erb (0.0ms)
384
+ Rendered sync/users/_show.html.erb (0.0ms)
385
+ Connecting to database specified by database.yml
386
+  (0.2ms) DROP TABLE IF EXISTS todos
387
+  (0.2ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
388
+  (0.0ms) DROP TABLE IF EXISTS users
389
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
390
+  (0.0ms) DROP TABLE IF EXISTS groups
391
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
392
+  (0.0ms) DROP TABLE IF EXISTS projects
393
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
394
+  (0.1ms) DROP TABLE IF EXISTS todos
395
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
396
+  (0.0ms) DROP TABLE IF EXISTS users
397
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
398
+  (0.0ms) DROP TABLE IF EXISTS groups
399
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
400
+  (0.1ms) DROP TABLE IF EXISTS projects
401
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
402
+ end of file reached
403
+ end of file reached
404
+ end of file reached
405
+ end of file reached
406
+ end of file reached
407
+ end of file reached
408
+ end of file reached
409
+ end of file reached
410
+ end of file reached
411
+ end of file reached
412
+ end of file reached
413
+ end of file reached
414
+ end of file reached
415
+ end of file reached
416
+ end of file reached
417
+ end of file reached
418
+ end of file reached
419
+ end of file reached
420
+ end of file reached
421
+ end of file reached
422
+ end of file reached
423
+ end of file reached
424
+ end of file reached
425
+ end of file reached
426
+ end of file reached
427
+ Rendered sync/users/_show.html.erb (4.4ms)
428
+ Rendered sync/users/_show.html.erb (0.0ms)
429
+ Rendered sync/users/_show.html.erb (0.0ms)
430
+ Rendered sync/users/_show.html.erb (0.0ms)
431
+ Rendered sync/users/_show.html.erb (0.0ms)
432
+ Connecting to database specified by database.yml
433
+  (0.1ms) DROP TABLE IF EXISTS todos
434
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
435
+  (0.0ms) DROP TABLE IF EXISTS users
436
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
437
+  (0.0ms) DROP TABLE IF EXISTS groups
438
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
439
+  (0.0ms) DROP TABLE IF EXISTS projects
440
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
441
+  (0.1ms) DROP TABLE IF EXISTS todos
442
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
443
+  (0.0ms) DROP TABLE IF EXISTS users
444
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
445
+  (0.0ms) DROP TABLE IF EXISTS groups
446
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
447
+  (0.0ms) DROP TABLE IF EXISTS projects
448
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
449
+ end of file reached
450
+ end of file reached
451
+ end of file reached
452
+ end of file reached
453
+ end of file reached
454
+ end of file reached
455
+ end of file reached
456
+ end of file reached
457
+ end of file reached
458
+ end of file reached
459
+ end of file reached
460
+ end of file reached
461
+ end of file reached
462
+ end of file reached
463
+ end of file reached
464
+ end of file reached
465
+ end of file reached
466
+ end of file reached
467
+ end of file reached
468
+ end of file reached
469
+ end of file reached
470
+ end of file reached
471
+ end of file reached
472
+ end of file reached
473
+ end of file reached
474
+ Rendered sync/users/_show.html.erb (3.8ms)
475
+ Rendered sync/users/_show.html.erb (0.0ms)
476
+ Rendered sync/users/_show.html.erb (0.0ms)
477
+ Rendered sync/users/_show.html.erb (0.0ms)
478
+ Rendered sync/users/_show.html.erb (0.0ms)
479
+ Rendered sync/users/refetch/_show.html.erb (0.6ms)
480
+ Connecting to database specified by database.yml
481
+  (0.1ms) DROP TABLE IF EXISTS todos
482
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
483
+  (0.0ms) DROP TABLE IF EXISTS users
484
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
485
+  (0.0ms) DROP TABLE IF EXISTS groups
486
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
487
+  (0.0ms) DROP TABLE IF EXISTS projects
488
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
489
+  (0.1ms) DROP TABLE IF EXISTS todos
490
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
491
+  (0.1ms) DROP TABLE IF EXISTS users
492
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
493
+  (0.1ms) DROP TABLE IF EXISTS groups
494
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
495
+  (0.1ms) DROP TABLE IF EXISTS projects
496
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
497
+ end of file reached
498
+ end of file reached
499
+ end of file reached
500
+ end of file reached
501
+ end of file reached
502
+ end of file reached
503
+ end of file reached
504
+ end of file reached
505
+ end of file reached
506
+ end of file reached
507
+ end of file reached
508
+ end of file reached
509
+ end of file reached
510
+ end of file reached
511
+ end of file reached
512
+ end of file reached
513
+ end of file reached
514
+ end of file reached
515
+ end of file reached
516
+ end of file reached
517
+ end of file reached
518
+ end of file reached
519
+ end of file reached
520
+ end of file reached
521
+ end of file reached
522
+ Rendered sync/users/_show.html.erb (4.3ms)
523
+ Rendered sync/users/_show.html.erb (0.0ms)
524
+ Rendered sync/users/_show.html.erb (0.0ms)
525
+ Rendered sync/users/_show.html.erb (0.0ms)
526
+ Rendered sync/users/_show.html.erb (0.0ms)
527
+ Rendered sync/users/refetch/_show.html.erb (0.6ms)
528
+ Rendered sync/users/_show.html.erb (0.4ms)
529
+ Connecting to database specified by database.yml
530
+  (0.1ms) DROP TABLE IF EXISTS todos
531
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
532
+  (0.0ms) DROP TABLE IF EXISTS users
533
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
534
+  (0.0ms) DROP TABLE IF EXISTS groups
535
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
536
+  (0.0ms) DROP TABLE IF EXISTS projects
537
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
538
+  (0.1ms) DROP TABLE IF EXISTS todos
539
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
540
+  (0.0ms) DROP TABLE IF EXISTS users
541
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
542
+  (0.0ms) DROP TABLE IF EXISTS groups
543
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
544
+  (0.0ms) DROP TABLE IF EXISTS projects
545
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
546
+ end of file reached
547
+ end of file reached
548
+ end of file reached
549
+ end of file reached
550
+ end of file reached
551
+ end of file reached
552
+
553
+ end of file reached
554
+ end of file reached
555
+ end of file reached
556
+ end of file reached
557
+ end of file reached
558
+ end of file reached
559
+ end of file reached
560
+ end of file reached
561
+ end of file reached
562
+ end of file reached
563
+ end of file reached
564
+ end of file reached
565
+ end of file reached
566
+ end of file reached
567
+ end of file reached
568
+ end of file reached
569
+ end of file reached
570
+ end of file reached
571
+ Rendered sync/users/_show.html.erb (4.5ms)
572
+ Rendered sync/users/_show.html.erb (0.0ms)
573
+ Rendered sync/users/_show.html.erb (0.0ms)
574
+ Rendered sync/users/_show.html.erb (0.0ms)
575
+ Rendered sync/users/_show.html.erb (0.0ms)
576
+ Rendered sync/users/refetch/_show.html.erb (0.3ms)
577
+ Rendered sync/users/_show.html.erb (0.3ms)
578
+ Connecting to database specified by database.yml
579
+  (0.3ms) DROP TABLE IF EXISTS todos
580
+  (0.3ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
581
+  (0.0ms) DROP TABLE IF EXISTS users
582
+  (0.2ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
583
+  (0.0ms) DROP TABLE IF EXISTS groups
584
+  (0.2ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
585
+  (0.0ms) DROP TABLE IF EXISTS projects
586
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
587
+  (0.2ms) DROP TABLE IF EXISTS todos
588
+  (0.1ms) CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)
589
+  (0.1ms) DROP TABLE IF EXISTS users
590
+  (0.1ms) CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)
591
+  (0.1ms) DROP TABLE IF EXISTS groups
592
+  (0.1ms) CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)
593
+  (0.1ms) DROP TABLE IF EXISTS projects
594
+  (0.1ms) CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)
595
+ end of file reached
596
+ end of file reached
597
+ end of file reached
598
+ end of file reached
599
+ end of file reached
600
+ end of file reached
601
+ end of file reached
602
+ end of file reached
603
+ end of file reached
604
+ end of file reached
605
+ end of file reached
606
+ end of file reached
607
+ end of file reached
608
+ end of file reached
609
+ end of file reached
610
+ end of file reached
611
+ end of file reached
612
+ end of file reached
613
+ end of file reached
614
+ end of file reached
615
+ end of file reached
616
+ end of file reached
617
+ end of file reached
618
+ end of file reached
619
+ end of file reached
620
+ Rendered sync/users/_show.html.erb (4.4ms)
621
+ Rendered sync/users/_show.html.erb (0.0ms)
622
+ Rendered sync/users/_show.html.erb (0.0ms)
623
+ Rendered sync/users/_show.html.erb (0.0ms)
624
+ Rendered sync/users/_show.html.erb (0.0ms)
625
+ Rendered sync/users/refetch/_show.html.erb (0.7ms)
626
+ Rendered sync/users/_show.html.erb (0.6ms)